Add recognition of Linux ext2/3/4 and swap MBR PT.

This commit is contained in:
TomAwezome 2021-08-23 03:14:22 -04:00
parent dd959b40c5
commit 1c438fdcde
63 changed files with 8185 additions and 8136 deletions

View file

@ -30,7 +30,7 @@ body {background-color:#fef1f0;}
<a name="l3"></a>
<a name="l4"></a> </span><span class=cF2>1) The pull-down menu.</span><span class=cF0>
<a name="l5"></a>
<a name="l6"></a> </span><span class=cF2>2) The </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3771"><span class=cF4>CCtrl</span></a><span class=cF2> type for the tempo/stacatto sliders.</span><span class=cF0>
<a name="l6"></a> </span><span class=cF2>2) The </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3774"><span class=cF4>CCtrl</span></a><span class=cF2> type for the tempo/stacatto sliders.</span><span class=cF0>
<a name="l7"></a>
<a name="l8"></a> </span><span class=cF2>3) The active </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF2> sprite bttns with macros for left/record/play/right.</span><span class=cF0>
<a name="l9"></a>

View file

@ -36,7 +36,7 @@ body {background-color:#fef1f0;}
<a name="l9"></a> </span><span class=cF5>WinToTop</span><span class=cF0>;
<a name="l10"></a> </span><span class=cF5>WinZBufUpdate</span><span class=cF0>;
<a name="l11"></a> </span><span class=cF5>Dir</span><span class=cF0>;
<a name="l12"></a> </span><span class=cF6>&quot;94,703LOC:&quot;</span><span class=cF0>;
<a name="l12"></a> </span><span class=cF6>&quot;94,722LOC:&quot;</span><span class=cF0>;
<a name="l13"></a> </span><span class=cF5>CPURep</span><span class=cF0>;
<a name="l14"></a>}
<a name="l15"></a>

View file

@ -111,7 +111,7 @@ body {background-color:#fef1f0;}
<a name="l84"></a>* Good spell checker.
<a name="l85"></a>* Good Bible search.
<a name="l86"></a>
<a name="l87"></a>* Can </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3539"><span class=cF4>MEM_EXTRA_HASH2_PAGS</span></a><span class=cF0> be just one?
<a name="l87"></a>* Can </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3542"><span class=cF4>MEM_EXTRA_HASH2_PAGS</span></a><span class=cF0> be just one?
<a name="l88"></a>
<a name="l89"></a>* Bible ranges in </span><a href="https://zeal-operating-system.github.io/ZealOS/System/God/GodBible.CC.html#l260"><span class=cF4>BibleVerse</span></a><span class=cF0>().
<a name="l90"></a>
@ -123,7 +123,7 @@ body {background-color:#fef1f0;}
<a name="l96"></a>
<a name="l97"></a>* Asm LIST NOLIST bugs.
<a name="l98"></a>
<a name="l99"></a>* Review writing to same cache-line from multicore. Do </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>-&gt;task_flags and others need to be in separate cache lines?
<a name="l99"></a>* Review writing to same cache-line from multicore. Do </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF0>-&gt;task_flags and others need to be in separate cache lines?
<a name="l100"></a>
<a name="l101"></a>* Fix </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l57"><span class=cF4>KbdLEDsSet</span></a><span class=cF0>().
<a name="l102"></a>* NumLock comes on with break key.
@ -288,7 +288,7 @@ body {background-color:#fef1f0;}
<a name="l261"></a>
<a name="l262"></a>* Should we get rid of drive mapping. It's ugly.
<a name="l263"></a>
<a name="l264"></a>* Can we get rid of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>MESSAGE_CMD</span></a><span class=cF0>?
<a name="l264"></a>* Can we get rid of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>MESSAGE_CMD</span></a><span class=cF0>?
<a name="l265"></a>
<a name="l266"></a>* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
<a name="l267"></a>
@ -301,20 +301,20 @@ body {background-color:#fef1f0;}
<a name="l274"></a>* International Date output: </span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4273"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> before transformation? (Currently, it's after.)
<a name="l277"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4276"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3615"><span class=cF4>TRANSPARENT</span></a><span class=cF0> does not work with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3611"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
<a name="l279"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3618"><span class=cF4>TRANSPARENT</span></a><span class=cF0> does not work with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3614"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
<a name="l280"></a>
<a name="l281"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3601"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick&gt;1 is broken.
<a name="l281"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3604"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick&gt;1 is broken.
<a name="l282"></a>
<a name="l283"></a>* </span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/System/MathODE.CC.html#l1"><span class=cF4>::/System/MathODE.CC</span></a><span class=cF0>?
<a name="l287"></a>* Eliminate? </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF0>.brush?
<a name="l288"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF0>.brush?
<a name="l289"></a>* Eliminate? </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3601"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
<a name="l290"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3604"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
<a name="l291"></a>
<a name="l292"></a>* </span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l47"><span class=cF4>MouseSet</span></a><span class=cF0>()?
<a name="l293"></a>
@ -391,13 +391,13 @@ body {background-color:#fef1f0;}
<a name="l364"></a>
<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>* More </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3771"><span class=cF4>Controls</span></a><span class=cF0>?
<a name="l367"></a>* More </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3774"><span class=cF4>Controls</span></a><span class=cF0>?
<a name="l368"></a>
<a name="l369"></a>* Compiler: More use of more floating-point stack?
<a name="l370"></a>
<a name="l371"></a>* Compiler: More aggressive in </span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>?
<a name="l373"></a>* Playing with </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><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()
@ -453,7 +453,7 @@ body {background-color:#fef1f0;}
<a name="l426"></a>* Might make CSprite flood fill operate on a separate bitmap
<a name="l427"></a>and blotted at the end.
<a name="l428"></a>* &lt;CTRL-r&gt; delete subsprite in menu near others
<a name="l429"></a>* make better heapwalk, do something with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
<a name="l429"></a>* make better heapwalk, do something with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3477"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
<a name="l430"></a>
<a name="l431"></a>* static var off of data heap.
<a name="l432"></a>* could add &quot;const&quot; to not set CCF_NOT_CONST flag for trig, etc.

View file

@ -70,7 +70,7 @@ body {background-color:#fef1f0;}
<a name="l41"></a>
<a name="l42"></a>
<a name="l43"></a></span><span class=cF2>//These are indexed by color #.</span><span class=cF0>
<a name="l44"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3620"><span class=cF4>COLORS</span></a><span class=cF2>.</span><span class=cF0>
<a name="l44"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3623"><span class=cF4>COLORS</span></a><span class=cF2>.</span><span class=cF0>
<a name="l45"></a>
<a name="l46"></a></span><span class=cF1>U8</span><span class=cF0> *tiles1[</span><span class=cFE>16</span><span class=cF0>]={</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cFA>&lt;7&gt;</span><span class=cF0> , </span><span class=cFA>&lt;5&gt;</span><span class=cF0> , </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cFA>&lt;6&gt;</span><span class=cF0> , </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>};
<a name="l47"></a>
@ -141,7 +141,7 @@ body {background-color:#fef1f0;}
<a name="l112"></a>
<a name="l113"></a> </span><span class=cF2>//You could make it much more efficient</span><span class=cF0>
<a name="l114"></a> </span><span class=cF2>//if you did it like </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/BigGuns.CC.html#l1"><span class=cF4>::/Demo/Games/BigGuns.CC</span></a><span class=cF0>
<a name="l115"></a> </span><span class=cF2>//with a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF2>.</span><span class=cF0>
<a name="l115"></a> </span><span class=cF2>//with a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF2>.</span><span class=cF0>
<a name="l116"></a>
<a name="l117"></a> </span><span class=cF1>for</span><span class=cF0> (y = -SCREEN_HEIGHT / </span><span class=cFE>2</span><span class=cF0>; y &lt; SCREEN_HEIGHT / </span><span class=cFE>2</span><span class=cF0>; y++)
<a name="l118"></a> </span><span class=cF7>{</span><span class=cF0>

View file

@ -61,7 +61,7 @@ body {background-color:#fef1f0;}
<a name="l34"></a></span><span class=cF1>U0</span><span class=cF0> ElephantWalk()
<a name="l35"></a>{
<a name="l36"></a> </span><span class=cF9>I64</span><span class=cF0> sc,
<a name="l37"></a> x = </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width &gt;&gt; </span><span class=cFE>1</span><span class=cF0>, y = </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_height &gt;&gt; </span><span class=cFE>1</span><span class=cF0>, </span><span class=cF2>//Fs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> struct.</span><span class=cF0>
<a name="l37"></a> x = </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width &gt;&gt; </span><span class=cFE>1</span><span class=cF0>, y = </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_height &gt;&gt; </span><span class=cFE>1</span><span class=cF0>, </span><span class=cF2>//Fs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> struct.</span><span class=cF0>
<a name="l38"></a> x_last = x;
<a name="l39"></a>
<a name="l40"></a> </span><span class=cF5>AutoComplete</span><span class=cF0>;

View file

@ -41,7 +41,7 @@ body {background-color:#fef1f0;}
<a name="l14"></a>
<a name="l15"></a> </span><span class=cF5>MemCopy</span><span class=cF0>(&amp;old_grid, &amp;</span><span class=cFB>mouse_grid</span><span class=cF0>, </span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CGridGlobals</span><span class=cF7>)</span><span class=cF0>);
<a name="l16"></a> </span><span class=cF5>GridInit</span><span class=cF0>;
<a name="l17"></a> </span><span class=cFB>mouse_grid</span><span class=cF0>.snap = </span><span class=cF3>TRUE</span><span class=cF0>; </span><span class=cF2>//You can set other </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3726"><span class=cF4>stuff</span></a><span class=cF2>.</span><span class=cF0>
<a name="l17"></a> </span><span class=cFB>mouse_grid</span><span class=cF0>.snap = </span><span class=cF3>TRUE</span><span class=cF0>; </span><span class=cF2>//You can set other </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3729"><span class=cF4>stuff</span></a><span class=cF2>.</span><span class=cF0>
<a name="l18"></a> </span><span class=cFB>mouse_grid</span><span class=cF0>.x = GRID;
<a name="l19"></a> </span><span class=cFB>mouse_grid</span><span class=cF0>.y = GRID;
<a name="l20"></a> old_draw_mouse = </span><span class=cFB>gr</span><span class=cF0>.fp_draw_mouse;

View file

@ -556,7 +556,7 @@ body {background-color:#fef1f0;}
<a name="l529"></a>
<a name="l530"></a> </span><span class=cF5>SettingsPush</span><span class=cF0>; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/TaskSettings.CC.html#l3"><span class=cF4>SettingsPush</span></a><span class=cF0>
<a name="l531"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;win_inhibit = </span><span class=cF3>WIG_TASK_DEFAULT</span><span class=cF0> - </span><span class=cF3>WIF_SELF_FOCUS</span><span class=cF0> - </span><span class=cF3>WIF_SELF_BORDER</span><span class=cF0> - </span><span class=cF3>WIF_FOCUS_TASK_MENU</span><span class=cF0>;
<a name="l532"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;text_attr = </span><span class=cF3>BLACK</span><span class=cF0> &lt;&lt; </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
<a name="l532"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;text_attr = </span><span class=cF3>BLACK</span><span class=cF0> &lt;&lt; </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
<a name="l533"></a> </span><span class=cF5>AutoComplete</span><span class=cF0>;
<a name="l534"></a> </span><span class=cF5>WinBorder</span><span class=cF0>;
<a name="l535"></a> </span><span class=cF5>WinMax</span><span class=cF0>;

View file

@ -29,7 +29,7 @@ body {background-color:#fef1f0;}
<a name="l2"></a></span><span class=cF2>It's conceptually easy to do a ctrl,</span><span class=cF0>
<a name="l3"></a></span><span class=cF2>but tedious. You have complete freedom.</span><span class=cF0>
<a name="l4"></a>
<a name="l5"></a></span><span class=cF2>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3771"><span class=cF4>CCtrl</span></a><span class=cF2>.</span><span class=cF0>
<a name="l5"></a></span><span class=cF2>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3774"><span class=cF4>CCtrl</span></a><span class=cF2>.</span><span class=cF0>
<a name="l6"></a></span><span class=cF2>*/</span><span class=cF0>
<a name="l7"></a>
<a name="l8"></a></span><span class=cF2>//Start of autocreated Code</span><span class=cF0>

View file

@ -45,7 +45,7 @@ body {background-color:#fef1f0;}
<a name="l18"></a></span><span class=cF2>compiled. That is, they are ptrs to data.</span><span class=cF0>
<a name="l19"></a>
<a name="l20"></a></span><span class=cF2>This file uses the persistent graphic</span><span class=cF0>
<a name="l21"></a></span><span class=cF2>device context </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc</span></a><span class=cF2>, while the other</span><span class=cF0>
<a name="l21"></a></span><span class=cF2>device context </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc</span></a><span class=cF2>, while the other</span><span class=cF0>
<a name="l22"></a></span><span class=cF2>demo's use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc2</span></a><span class=cF2> which must be redrawn at</span><span class=cF0>
<a name="l23"></a></span><span class=cF2>60 fps by the window mgr task.</span><span class=cF0> </span><span class=cF2>This demo</span><span class=cF0>
<a name="l24"></a></span><span class=cF2>is simpler because you do not need</span><span class=cF0>

View file

@ -39,7 +39,7 @@ body {background-color:#fef1f0;}
<a name="l12"></a> </span><span class=cF5>WinBorder</span><span class=cF0>; </span><span class=cF2>//No Border</span><span class=cF0>
<a name="l13"></a> </span><span class=cF5>WinMax</span><span class=cF0>; </span><span class=cF2>//Maximize window</span><span class=cF0>
<a name="l14"></a> </span><span class=cF5>DocClear</span><span class=cF0>; </span><span class=cF2>//Clear command-line text</span><span class=cF0>
<a name="l15"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;text_attr = </span><span class=cF3>BLACK</span><span class=cF0> &lt;&lt; </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
<a name="l15"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;text_attr = </span><span class=cF3>BLACK</span><span class=cF0> &lt;&lt; </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
<a name="l16"></a>
<a name="l17"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; </span><span class=cFE>0x8000</span><span class=cF0>; i += </span><span class=cFE>0x200</span><span class=cF0>)
<a name="l18"></a> </span><span class=cF7>{</span><span class=cF0>

View file

@ -50,11 +50,11 @@ body {background-color:#fef1f0;}
<a name="l23"></a> </span><span class=cF5>SettingsPush</span><span class=cF0>; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/TaskSettings.CC.html#l3"><span class=cF4>SettingsPush</span></a><span class=cF0>
<a name="l24"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;draw_it = &amp;</span><span class=cF5>DrawIt</span><span class=cF0>;
<a name="l25"></a>
<a name="l26"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3668"><span class=cF4>kbd.down_bitmap</span></a><span class=cF2> is indexed with the</span><span class=cF0>
<a name="l26"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3671"><span class=cF4>kbd.down_bitmap</span></a><span class=cF2> is indexed with the</span><span class=cF0>
<a name="l27"></a> </span><span class=cF2>//merged scan code. (left shift and</span><span class=cF0>
<a name="l28"></a> </span><span class=cF2>//right shift combined for example.)</span><span class=cF0>
<a name="l29"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3668"><span class=cF4>kbd.down_bitmap2</span></a><span class=cF2> is indexed with the</span><span class=cF0>
<a name="l30"></a> </span><span class=cF2>//distinct scan code. See </span><span class=cF4><u>Char</u></span><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF2>.</span><span class=cF0>
<a name="l29"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3671"><span class=cF4>kbd.down_bitmap2</span></a><span class=cF2> is indexed with the</span><span class=cF0>
<a name="l30"></a> </span><span class=cF2>//distinct scan code. See </span><span class=cF4><u>Char</u></span><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4222"><span class=cF4>Scan Codes</span></a><span class=cF2>.</span><span class=cF0>
<a name="l31"></a>
<a name="l32"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>kbd</span><span class=cF0>.down_bitmap, i_sc</span><span class=cF7>)</span><span class=cF0>)
<a name="l33"></a> </span><span class=cF7>{</span><span class=cF0>

View file

@ -28,7 +28,7 @@ body {background-color:#fef1f0;}
<a name="l1"></a><span class=cF1>U0</span><span class=cF0> MessageLoop()
<a name="l2"></a>{
<a name="l3"></a> </span><span class=cF9>I64</span><span class=cF0> arg1, arg2, message_code;
<a name="l4"></a> </span><span class=cF6>&quot;Use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF6> defines in your programs instead of hardcoded nums.\n&quot;</span><span class=cF0>
<a name="l4"></a> </span><span class=cF6>&quot;Use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF6> defines in your programs instead of hardcoded nums.\n&quot;</span><span class=cF0>
<a name="l5"></a> </span><span class=cF6>&quot;&lt;ESC&gt; to Exit\n&quot;</span><span class=cF0>;
<a name="l6"></a>
<a name="l7"></a> </span><span class=cF2>//We don't want the mouse bttns to reposition the cursor,</span><span class=cF0>
@ -50,6 +50,6 @@ body {background-color:#fef1f0;}
<a name="l23"></a>
<a name="l24"></a>MessageLoop;
<a name="l25"></a>
<a name="l26"></a></span><span class=cF2>// Press &lt;CTRL-SHIFT-L&gt; and &quot;Insert </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2>/</span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>ScanCode</span></a><span class=cF2>&quot;.</span><span class=cF0>
<a name="l26"></a></span><span class=cF2>// Press &lt;CTRL-SHIFT-L&gt; and &quot;Insert </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2>/</span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>ScanCode</span></a><span class=cF2>&quot;.</span><span class=cF0>
</span></pre></body>
</html>

View file

@ -99,7 +99,7 @@ body {background-color:#fef1f0;}
<a name="l72"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MESSAGE_CMD</span><span class=cF0>:
<a name="l73"></a> </span><span class=cF2>//Feel free to make your menu</span><span class=cF0>
<a name="l74"></a> </span><span class=cF2>//drive by key strokes, but you can</span><span class=cF0>
<a name="l75"></a> </span><span class=cF2>//use the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>MESSAGE_CMD</span></a><span class=cF2> val.</span><span class=cF0>
<a name="l75"></a> </span><span class=cF2>//use the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>MESSAGE_CMD</span></a><span class=cF2> val.</span><span class=cF0>
<a name="l76"></a> </span><span class=cF1>switch</span><span class=cF0> (arg1)
<a name="l77"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l78"></a> </span><span class=cF1>case</span><span class=cF0> M_OPTION1:

View file

@ -49,7 +49,7 @@ body {background-color:#fef1f0;}
<a name="l22"></a>incredibly efficient. You just have to declare the desired file size when you create it with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l9"><span class=cF4>FOpen</span></a><span class=cF0>() and cannot change it.
<a name="l23"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Disk/DataBase.CC.html#l1"><span class=cF4>::/Demo/Disk/DataBase.CC</span></a><span class=cF0>.
<a name="l24"></a>
<a name="l25"></a>If you like, you are encouraged to to do raw </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3376"><span class=cF4>CDrive</span></a><span class=cF0>
<a name="l25"></a>If you like, you are encouraged to to do raw </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3379"><span class=cF4>CDrive</span></a><span class=cF0>
<a name="l26"></a>with </span><a href="https://zeal-operating-system.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="l27"></a>used for a database, or invent a file system.
<a name="l28"></a>

File diff suppressed because it is too large Load diff

View file

@ -30,7 +30,7 @@ body {background-color:#fef1f0;}
<a name="l3"></a>A </span><span class=cF2>Char</span><span class=cF0>acter is a single byte holding an ASCII code for a letter, num or sym. The </span><span class=cF2>ZealOS</span><span class=cF0> term is a </span><span class=cF2>U8</span><span class=cF0>.
<a name="l4"></a>
<a name="l5"></a>Standard ASCII values range from 0 to 127. Values below 32 are ctrl key's. So, an ASCII #3 is a </span><span class=cF2>&lt;CTRL-c&gt;</span><span class=cF0>. ZealOS uses a
<a name="l6"></a>couple nonstandard values below 32. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>Char Definitions</span></a><span class=cF0>.
<a name="l6"></a>couple nonstandard values below 32. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>Char Definitions</span></a><span class=cF0>.
<a name="l7"></a>
<a name="l8"></a>ASCII #5 is the cursor location in a saved file.
<a name="l9"></a>ASCII #28 is </span><span class=cF2>&lt;SHIFT-ESC&gt;</span><span class=cF0>.
@ -39,19 +39,19 @@ body {background-color:#fef1f0;}
<a name="l12"></a>Technically, </span><span class=cF2>&lt;CTRL-ALT-a&gt;</span><span class=cF0> are </span><span class=cF4><u>screen codes</u></span><span class=cF0>.
<a name="l13"></a>
<a name="l14"></a>A </span><span class=cF2>Key</span><span class=cF0> is typically specified with a scan code. ZealOS scan codes contain the key value in the lowest </span><span class=cF2>U8</span><span class=cF0>, and flags in the
<a name="l15"></a>upper 3 bytes. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4185"><span class=cF4>Scan Code Flags</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF0>.
<a name="l15"></a>upper 3 bytes. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4188"><span class=cF4>Scan Code Flags</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4222"><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.
<a name="l19"></a> </span><span class=cF2>Byte 1-3</span><span class=cF0> are </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4168"><span class=cF4>flags</span></a><span class=cF0>
<a name="l19"></a> </span><span class=cF2>Byte 1-3</span><span class=cF0> are </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4171"><span class=cF4>flags</span></a><span class=cF0>
<a name="l20"></a>
<a name="l21"></a>The upper 4-bytes are copied from lower 4-bytes.
<a name="l22"></a> </span><span class=cF2>Byte 4</span><span class=cF0> is the code. Left, Right and NumPad keys distinct.
<a name="l23"></a> </span><span class=cF2>Byte 5-7</span><span class=cF0> are </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4168"><span class=cF4>flags</span></a><span class=cF0>
<a name="l23"></a> </span><span class=cF2>Byte 5-7</span><span class=cF0> are </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4171"><span class=cF4>flags</span></a><span class=cF0>
<a name="l24"></a>
<a name="l25"></a>Run the program </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/MessageLoop.CC.html#l1"><span class=cF4>::/Demo/MessageLoop.CC</span></a><span class=cF0> to examine scan code. Press </span><span class=cF2>&lt;CTRL-SHIFT-l&gt;</span><span class=cF0> and &quot;Insert ASCII/ScanCode&quot;.
<a name="l26"></a>
<a name="l27"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/KeyAlloc.DD.html#l1"><span class=cF4>Key Allocations</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3668"><span class=cF4>CKbdStateGlobals</span></a><span class=cF0>.
<a name="l27"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/KeyAlloc.DD.html#l1"><span class=cF4>Key Allocations</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3671"><span class=cF4>CKbdStateGlobals</span></a><span class=cF0>.
<a name="l28"></a>
<a name="l29"></a>A </span><span class=cF2>String</span><span class=cF0> is a bunch of ASCII characters terminated with a zero.
</span></pre></body>

View file

@ -38,7 +38,7 @@ body {background-color:#fef1f0;}
<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,703
<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,722
<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
<a name="l17"></a>that is no longer blissful.

View file

@ -297,7 +297,7 @@ body {background-color:#fef1f0;}
<a name="l270"></a>off-of other task's heaps, or make an independent heap with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.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. Yo
<a name="l273"></a>u can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><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://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l129"><span class=cF4>CallStackGrow</span></a><span class=cF0>(), but
<a name="l273"></a>u can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3547"><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://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://zeal-operating-system.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://zeal-operating-system.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.

View file

@ -25,7 +25,7 @@ body {background-color:#fef1f0;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>To create a ZealOS graphic ctrl, you define callback functions and insert a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3771"><span class=cF4>CCtrl</span></a><span class=cF0> structure in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0> queue. See </span><span class=cF4>
<a name="l1"></a><span class=cF0>To create a ZealOS graphic ctrl, you define callback functions and insert a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3774"><span class=cF4>CCtrl</span></a><span class=cF0> structure in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF0> queue. See </span><span class=cF4>
<a name="l2"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Slider.CC.html#l1"><span class=cF4>::/Demo/Graphics/Slider.CC</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/ScrollBars.CC.html#l1"><span class=cF4>::/Demo/Graphics/ScrollBars.CC</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/WallPaper.CC.html#l162"><span class=cF4>TermBttnNew</span></a><span class=cF0>. There is a template-code ctrl generator, if you
<a name="l3"></a>press </span><span class=cF2>&lt;CTRL-SHIFT-L&gt;</span><span class=cF0>.
</span></pre></body>

View file

@ -29,9 +29,9 @@ body {background-color:#fef1f0;}
<a name="l2"></a>
<a name="l3"></a>* You can enter the debugger with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDebug.CC.html#l754"><span class=cF4>Debug</span></a><span class=cF0>() or </span><span class=cF2>&lt;CTRL-ALT-d&gt;</span><span class=cF0>. You might enter the debugger through a fault. Enter </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDebug.CC.html#l519"><span class=cF4>G</span></a><span class=cF0>() or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDebug.CC.html#l551"><span class=cF4>G2</span></a><span class=cF0>()
<a name="l4"></a>to continue execution. Place a call to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDebug.CC.html#l754"><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://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4082"><span class=cF4>_RIP</span></a><span class=cF0>);
<a name="l5"></a>dump, record the label+offset and unassemble, </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4085"><span class=cF4>_RIP</span></a><span class=cF0>);
<a name="l6"></a>
<a name="l7"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(&amp;FunName+offset) to unassemble mem or </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Debug.CC.html#l330"><span class=cF4>Uf</span></a><span class=cF0>(&quot;FunName&quot;) to unassemble a function. </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4082"><span class=cF4>_RIP</span></a><span class=cF0>-16);
<a name="l7"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(&amp;FunName+offset) to unassemble mem or </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Debug.CC.html#l330"><span class=cF4>Uf</span></a><span class=cF0>(&quot;FunName&quot;) to unassemble a function. </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4085"><span class=cF4>_RIP</span></a><span class=cF0>-16);
<a name="l8"></a>
<a name="l9"></a>* While debugging, you specify addresses of assembly routines with just the label, as in </span><span class=cF2>_MALLOC+0x20</span><span class=cF0>. You specify </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>
<a name="l10"></a>function names with </span><span class=cF2>&amp;</span><span class=cF0> before functions as in </span><span class=cF2>&amp;Print+0x10</span><span class=cF0>.

View file

@ -33,7 +33,7 @@ body {background-color:#fef1f0;}
<a name="l5"></a>
<a name="l6"></a>Here is the grammar:
<a name="l7"></a>
<a name="l8"></a>&lt;DolDocCmd&gt; := </span><span class=cF2>$</span><span class=cF0>&lt;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>&gt;[&lt;FlagList&gt;][</span><span class=cF2>,</span><span class=cF0>&lt;ArgList&gt;]</span><span class=cF2>$</span><span class=cF0> | </span><span class=cF2>$</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l246"><span class=cF4>ColorName</span></a><span class=cF2>$</span><span class=cF0>
<a name="l8"></a>&lt;DolDocCmd&gt; := </span><span class=cF2>$</span><span class=cF0>&lt;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>&gt;[&lt;FlagList&gt;][</span><span class=cF2>,</span><span class=cF0>&lt;ArgList&gt;]</span><span class=cF2>$</span><span class=cF0> | </span><span class=cF2>$</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l248"><span class=cF4>ColorName</span></a><span class=cF2>$</span><span class=cF0>
<a name="l9"></a>
<a name="l10"></a>&lt;FlagList&gt; := </span><span class=cF2>+</span><span class=cF0>|</span><span class=cF2>-</span><span class=cF0> &lt;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>FlagCode</span></a><span class=cF0>&gt;[&lt;FlagList&gt;]
<a name="l11"></a>
@ -41,7 +41,7 @@ body {background-color:#fef1f0;}
<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
<a name="l16"></a>mandatory args. Optional args are indicated with &lt;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt;</span><span class=cF2>=</span><span class=cF0>. A </span><a href="https://zeal-operating-system.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="l16"></a>mandatory args. Optional args are indicated with &lt;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt;</span><span class=cF2>=</span><span class=cF0>. A </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l248"><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://zeal-operating-system.github.io/ZealOS/Doc/Widget.DD.html#l1"><span class=cF4>::/Doc/Widget.DD</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Demo/ToHtmlToTXTDemo/ToHtml.CC.html#l1"><span class=cF4>::/Demo/ToHtmlToTXTDemo/ToHtml.CC</span></a><span class=cF0>.

View file

@ -77,11 +77,11 @@ body {background-color:#fef1f0;}
<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://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> ISO file image of the dir the cursor is on. The name of the ISO file is </span><span class=cF2>
<a name="l53"></a> &quot;::/Tmp/CDDVD.ISO.C&quot;</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><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="l53"></a> &quot;::/Tmp/CDDVD.ISO.C&quot;</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3421"><span class=cF4>blkdev.default_iso_c_filename</span></a><span class=cF0> and can be redefined in your start-up scripts. You may wish to place it
<a name="l54"></a> on a different drive.
<a name="l55"></a>
<a name="l56"></a></span><span class=cF2>'B'</span><span class=cF0>
<a name="l57"></a> Burn CD/DVD ISO file. This burns a CD/DVD using the image file, </span><span class=cF2>&quot;::/Tmp/CDDVD.ISO&quot;</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0> to the drive
<a name="l57"></a> Burn CD/DVD ISO file. This burns a CD/DVD using the image file, </span><span class=cF2>&quot;::/Tmp/CDDVD.ISO&quot;</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3421"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0> to the drive
<a name="l58"></a> the cursor is on.
<a name="l59"></a>
<a name="l60"></a>
@ -94,7 +94,7 @@ body {background-color:#fef1f0;}
<a name="l67"></a></span><span class=cF5>Instructions on Burning CD/DVD's</span><span class=cF0>
<a name="l68"></a> Create a temporary dir to hold files and copy files into the holding dir. Make an ISO image of the dir by pressing </span><span class=cF2>'M'</span><span class=cF0> when
<a name="l69"></a> on top of the dir. Press </span><span class=cF2>'B'</span><span class=cF0> when on top of the CD/DVD ROM drive to burn the ISO, </span><span class=cF2>&quot;::/Tmp/CDDVD.ISO&quot;</span><span class=cF0> </span><span class=cF4>
<a name="l70"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0>, to disk. If you have not recompiled </span><span class=cF2>Kernel</span><span class=cF0> and defined your CD/DVD drive, exit the FileMgr and
<a name="l70"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3421"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0>, to disk. If you have not recompiled </span><span class=cF2>Kernel</span><span class=cF0> and defined your CD/DVD drive, exit the FileMgr and
<a name="l71"></a> use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>.
<a name="l72"></a> </span><span class=cF4>
<a name="l73"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Misc/DoDistro.CC.html#l1"><span class=cF4>Making Your Own Distro</span></a><span class=cF0>

View file

@ -73,7 +73,7 @@ body {background-color:#fef1f0;}
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><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="l49"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l230"><span class=cF4>DCDel</span></a><span class=cF0>() when finished.
<a name="l52"></a>
@ -96,21 +96,21 @@ body {background-color:#fef1f0;}
<a name="l69"></a>cursor location when you pressed </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2>&lt;CTRL-r
<a name="l70"></a>&gt;</span><span class=cF0> again.
<a name="l71"></a>
<a name="l72"></a>* Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4273"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l236"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4277"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4273"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4276"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l236"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4280"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4276"><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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3600"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc-&gt;color</span><span class=cF0> member var which is a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><span class=cF4>
<a name="l81"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with vector </span><span class=cF4>
<a name="l80"></a>* There are a few </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3603"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc-&gt;color</span><span class=cF0> member var which is a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3644"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><span class=cF4>
<a name="l81"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3605"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3605"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with vector </span><span class=cF4>
<a name="l82"></a></span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> to a bitmap if your subelements draw on top of each other. Be sure to set </span><span class=cF4>-&gt;bkcolor</span><span class=cF0> before
<a name="l84"></a>using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
<a name="l84"></a>using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3605"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
<a name="l85"></a>
<a name="l86"></a>* The </span><span class=cF4>-&gt;dither_probability_u16</span><span class=cF0> member of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><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="l86"></a>* The </span><span class=cF4>-&gt;dither_probability_u16</span><span class=cF0> member of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><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://zeal-operating-system.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://zeal-operating-system.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>

View file

@ -157,9 +157,9 @@ body {background-color:#fef1f0;}
<a name="l130"></a>
<a name="l131"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Asm.DD.html#l1"><span class=cF4>::/Doc/Asm.DD</span></a><span class=cF0>.
<a name="l132"></a>
<a name="l133"></a>* </span><span class=cF2>FS</span><span class=cF0> must always point to the cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>.
<a name="l133"></a>* </span><span class=cF2>FS</span><span class=cF0> must always point to the cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF0>.
<a name="l134"></a>
<a name="l135"></a>* </span><span class=cF2>GS</span><span class=cF0> must always point to the cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF0>.
<a name="l135"></a>* </span><span class=cF2>GS</span><span class=cF0> must always point to the cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4099"><span class=cF4>CCPU</span></a><span class=cF0>.
<a name="l136"></a>
<a name="l137"></a>* Don't change the segment regs unless interrupts are off. It's hard to do, anyway. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KUtils.CC.html#l536"><span class=cF4>SET_FS_BASE</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KUtils.CC.html#l522"><span class=cF4>SET_GS_BASE</span></a><span class=cF0>.
<a name="l138"></a>

View file

@ -25,6 +25,6 @@ body {background-color:#fef1f0;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>Recompile the kernel with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>=TRUE if you want more heap debugging. You are on your own.
<a name="l1"></a><span class=cF0>Recompile the kernel with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3477"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>=TRUE if you want more heap debugging. You are on your own.
</span></pre></body>
</html>

View file

@ -54,7 +54,7 @@ body {background-color:#fef1f0;}
<a name="l27"></a>
<a name="l28"></a>
<a name="l29"></a>
<a name="l30"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3853"><span class=cF4>CJob</span></a><span class=cF0> nodes are one of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>five types</span></a><span class=cF0>. User applications deal with text or messages. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l321"><span class=cF4>JobRunOne</span></a><span class=cF0>() will call a function, spawn a
<a name="l30"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3856"><span class=cF4>CJob</span></a><span class=cF0> nodes are one of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3849"><span class=cF4>five types</span></a><span class=cF0>. User applications deal with text or messages. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l321"><span class=cF4>JobRunOne</span></a><span class=cF0>() will call a function, spawn a
<a name="l31"></a>task or execute some text src code.
<a name="l32"></a>
<a name="l33"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_TEXT_INPUT</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l88"><span class=cF4>TaskText</span></a><span class=cF2>() </span><span class=cF0> </span><span class=cF2>Feed StdIn</span><span class=cF0>

View file

@ -36,14 +36,14 @@ body {background-color:#fef1f0;}
<a name="l9"></a> Therefore, ZealOS keeps all code in the lowest 2Gig memory addresses including what would normally be called &quot;the kernel&quot;.
<a name="l10"></a>Two Gig is plenty for code, don't worry.
<a name="l11"></a>
<a name="l12"></a>You can create new, independent heaps using </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF0> as the 2nd arg to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>()
<a name="l12"></a>You can create new, independent heaps using </span><a href="https://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF0> as the 2nd arg to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.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.
<a name="l14"></a>
<a name="l15"></a>Memory alloced by a task will be freed when the task is killed. The </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is a task that never dies. His memory is like
<a name="l16"></a>kernel memory in other operating systems. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l408"><span class=cF4>SysCAlloc</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l394"><span class=cF4>SysMAlloc</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l427"><span class=cF4>SysMAllocIdent</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l503"><span class=cF4>SysStrNew</span></a><span class=cF0>().
<a name="l17"></a>
<a name="l18"></a>All of the regular page tables are marked, &quot;cached&quot;. When accessing hardware, however, you need uncached page table. The
<a name="l19"></a>lowest 4Gig addresses have an alias to access hardware located toward the top of mapped space, </span><span class=cF2>0x0100000000</span><span class=cF0>. See </span><span class=cF4>
<a name="l19"></a>lowest 4Gig addresses have an alias to access hardware located toward the top of mapped space, </span><span class=cF2>0x015B600000</span><span class=cF0>. See </span><span class=cF4>
<a name="l20"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/MultiProc.CC.html#l147"><span class=cF4>dev.uncached_alias</span></a><span class=cF0>.
<a name="l21"></a>
<a name="l22"></a>During an extended powered-on session of ZealOS, in theory, memory will become fragmented, requiring a reboot. It has never
@ -54,8 +54,8 @@ body {background-color:#fef1f0;}
<a name="l27"></a>
<a name="l28"></a></span><span class=cF5> Single System-wide Memory Map
<a name="l29"></a>
<a name="l30"></a></span><span class=cF2> 0x0000007C00- 0x0000036BAF</span><span class=cF0>
<a name="l31"></a> Kernel module, placed here by the boot-loader, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4477"><span class=cF4>BOOT_RAM_BASE</span></a><span class=cF0>.
<a name="l30"></a></span><span class=cF2> 0x0000007C00- 0x0000036BDF</span><span class=cF0>
<a name="l31"></a> Kernel module, placed here by the boot-loader, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4480"><span class=cF4>BOOT_RAM_BASE</span></a><span class=cF0>.
<a name="l32"></a>
<a name="l33"></a></span><span class=cF2> 0x0000096600- 0x0000096FFF</span><span class=cF0>
<a name="l34"></a> Boot block relocated here before loading the Kernel module, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Boot/BootDVD.CC.html#l1"><span class=cF4>BootDVD</span></a><span class=cF0> &amp; </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Boot/BootHD.CC.html#l1"><span class=cF4>BootHD</span></a><span class=cF0>.
@ -63,21 +63,21 @@ body {background-color:#fef1f0;}
<a name="l36"></a></span><span class=cF2> 0x0000097000- 0x0000097030</span><span class=cF0> Multicore start-up vect code, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l665"><span class=cF4>MPN_VECT</span></a><span class=cF0>.
<a name="l37"></a></span><span class=cF2>~0x000009F000- 0x000009FFFF</span><span class=cF0> Extended BIOS data area.
<a name="l38"></a></span><span class=cF2> 0x00000A0000- 0x00000BFFFF</span><span class=cF0> VGA graphics mem with alias at </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KGlobals.CC.html#l30"><span class=cF4>text</span></a><span class=cF0>.vga_alias.
<a name="l39"></a></span><span class=cF2> 0x0000100000- 0x0000101FFF</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4120"><span class=cF4>CSysFixedArea</span></a><span class=cF0> for misc.
<a name="l40"></a></span><span class=cF2> 0x000010C000- 0x007FFFFFFF</span><span class=cF0> Code Heap mem.
<a name="l39"></a></span><span class=cF2> 0x0000100000- 0x0000101FFF</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4123"><span class=cF4>CSysFixedArea</span></a><span class=cF0> for misc.
<a name="l40"></a></span><span class=cF2> 0x000010E000- 0x007FFFFFFF</span><span class=cF0> Code Heap mem.
<a name="l41"></a>
<a name="l42"></a></span><span class=cF2> 0x00E0000000- 0x00FFFFFFFF</span><span class=cF0>
<a name="l43"></a> 32-bit devices could alloc memory at 0xF0000000 going up, but this is wrong, since some PCs already have devices at
<a name="l44"></a> 0xF0000000. PCI devices are supported, so </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l64"><span class=cF4>Mem32DevAlloc</span></a><span class=cF0>() flaws could become an issue.
<a name="l45"></a>
<a name="l46"></a></span><span class=cF2> 0x0080000000-~0x00DFFFFFFF</span><span class=cF0>
<a name="l47"></a></span><span class=cF2> 0x0100000000-~0x00FFFFFFFF</span><span class=cF0>
<a name="l47"></a></span><span class=cF2> 0x0100000000-~0x015B5FFFFF</span><span class=cF0>
<a name="l48"></a> Data Heap mem. (The physical memory that exists in this range is data heap.)
<a name="l49"></a>
<a name="l50"></a></span><span class=cF2> 0x0100000000- 0x01FFFFFFFF</span><span class=cF0>
<a name="l50"></a></span><span class=cF2> 0x015B600000- 0x025B5FFFFF</span><span class=cF0>
<a name="l51"></a> Uncached alias of first 4Gig. (For 32-bit device access.)
<a name="l52"></a>
<a name="l53"></a></span><span class=cF2> - 0x01FFFFFFFF</span><span class=cF0>
<a name="l53"></a></span><span class=cF2> - 0x025B5FFFFF</span><span class=cF0>
<a name="l54"></a> 64-bit devices are alloced with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l122"><span class=cF4>Mem64DevAlloc</span></a><span class=cF0>() counting backward.
<a name="l55"></a>
<a name="l56"></a>

View file

@ -49,9 +49,9 @@ body {background-color:#fef1f0;}
<a name="l22"></a> About(,'/');
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3895"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF0> of the key in the case of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3898"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF0> of the key in the case of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3885"><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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3885"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>.
<a name="l28"></a>
<a name="l29"></a>Press </span><span class=cF2>&lt;CTRL-SHIFT-l&gt;</span><span class=cF0> and &quot;Insert ASCII/ScanCode&quot;.
<a name="l30"></a>

View file

@ -25,6 +25,6 @@ body {background-color:#fef1f0;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>There are a maximum of 63 message types, so a bitmask can be passed. Messages have two args. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3880"><span class=cF4>Message Codes</span></a><span class=cF0>.
<a name="l1"></a><span class=cF0>There are a maximum of 63 message types, so a bitmask can be passed. Messages have two args. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3883"><span class=cF4>Message Codes</span></a><span class=cF0>.
</span></pre></body>
</html>

View file

@ -28,9 +28,9 @@ body {background-color:#fef1f0;}
<a name="l1"></a><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KGlobals.CC.html#l25"><span class=cF4>mouse.pos.x</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KGlobals.CC.html#l25"><span class=cF4>mouse.pos.y</span></a><span class=cF0> can be used to access the x and y coordinates of the mouse. They are relative to the screen, not
<a name="l2"></a>window. These can be used if you don't want to use message passing. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KGlobals.CC.html#l25"><span class=cF4>mouse.pos.z</span></a><span class=cF0> is the wheel.
<a name="l3"></a></span><span class=cF4>
<a name="l4"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3704"><span class=cF4>mouse.pos_text.x</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3704"><span class=cF4>mouse.pos_text.y</span></a><span class=cF0> are the text column and row. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/Maze.CC.html#l1"><span class=cF4>::/Demo/Games/Maze.CC</span></a><span class=cF0>.
<a name="l4"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3707"><span class=cF4>mouse.pos_text.x</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3707"><span class=cF4>mouse.pos_text.y</span></a><span class=cF0> are the text column and row. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/Maze.CC.html#l1"><span class=cF4>::/Demo/Games/Maze.CC</span></a><span class=cF0>.
<a name="l5"></a>
<a name="l6"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3704"><span class=cF4>CMouseStateGlobals</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3684"><span class=cF4>CMouseHardStateGlobals</span></a><span class=cF0>.
<a name="l6"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3707"><span class=cF4>CMouseStateGlobals</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3687"><span class=cF4>CMouseHardStateGlobals</span></a><span class=cF0>.
<a name="l7"></a>
<a name="l8"></a>The </span><span class=cF2>hard</span><span class=cF0> designation, as in </span><span class=cF2>mouse_hard</span><span class=cF0>, represents hardware layer items before the application of an abstraction layer.
<a name="l9"></a>

View file

@ -25,7 +25,7 @@ body {background-color:#fef1f0;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>The word </span><span class=cF2>Pag</span><span class=cF0> refers to an arbitrilly created </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3534"><span class=cF4>MEM_PAG_SIZE</span></a><span class=cF0> unit of heap allocation. ZealOS does not alter the CPU page tables
<a name="l1"></a><span class=cF0>The word </span><span class=cF2>Pag</span><span class=cF0> refers to an arbitrilly created </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3537"><span class=cF4>MEM_PAG_SIZE</span></a><span class=cF0> unit of heap allocation. ZealOS does not alter the CPU page tables
<a name="l2"></a>after setting them up at boot in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/PageTables.CC.html#l6"><span class=cF4>SYS_INIT_PAGE_TABLES</span></a><span class=cF0>, so the CPU hardware page size is rarely important.
</span></pre></body>
</html>

View file

@ -32,10 +32,10 @@ body {background-color:#fef1f0;}
<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><span class=cF4>
<a name="l8"></a></span><a href="https://zeal-operating-system.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="l8"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAddDev.CC.html#l209"><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
<a name="l11"></a>heap. You can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><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://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
<a name="l11"></a>heap. You can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3547"><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://zeal-operating-system.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>

View file

@ -29,7 +29,7 @@ body {background-color:#fef1f0;}
<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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF0>, the user would press </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> to access his </span><span class=cF2>Personal Menu</span><span class=cF0> to trigger his
<a name="l5"></a>If you had a remote term and sent key </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4222"><span class=cF4>Scan Codes</span></a><span class=cF0>, the user would press </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> to access his </span><span class=cF2>Personal Menu</span><span class=cF0> to trigger his
<a name="l6"></a>macros. However, the local </span><a href="https://zeal-operating-system.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
<a name="l8"></a>output text with different windows sizes would cause remote and local documents to not be in sync.

View file

@ -29,8 +29,8 @@ body {background-color:#fef1f0;}
<a name="l2"></a>code takes care of plotting text to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0>.
<a name="l3"></a>
<a name="l4"></a>Bits 0-7 8-Bit ASCII Screen Code
<a name="l5"></a>Bits 8-11 Foreground </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3616"><span class=cF4>color</span></a><span class=cF0>
<a name="l6"></a>Bits 12-15 Background </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3616"><span class=cF4>color</span></a><span class=cF0>
<a name="l5"></a>Bits 8-11 Foreground </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3619"><span class=cF4>color</span></a><span class=cF0>
<a name="l6"></a>Bits 12-15 Background </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3619"><span class=cF4>color</span></a><span class=cF0>
<a name="l7"></a>Bits 16-20 Signed X pos shift val
<a name="l8"></a>Bits 21-25 Signed Y pos shift val
<a name="l9"></a>Bit 28 </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1030"><span class=cF4>Blink</span></a><span class=cF0>

View file

@ -83,11 +83,11 @@ body {background-color:#fef1f0;}
<a name="l56"></a>
<a name="l57"></a>* Use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l203"><span class=cF4>DocMax</span></a><span class=cF0>() to adjust the size of the cmd line buf. It counts </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> entries, not lines.
<a name="l58"></a>
<a name="l59"></a>* Many data structures have a </span><span class=cF2>user_data</span><span class=cF0> member. Those are available for you to store a data item, for convenience. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>, </span><span class=cF4>
<a name="l59"></a>* Many data structures have a </span><span class=cF2>user_data</span><span class=cF0> member. Those are available for you to store a data item, for convenience. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF0>, </span><span class=cF4>
<a name="l60"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1326"><span class=cF4>CDocEntry</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF0> have them. You shouldn't encounter conflicts with ZealOS using them.
<a name="l61"></a>
<a name="l62"></a>* If, for some strange reason, you wanted to reduce mem usage, make a smaller disk cache when you recompile the kernel;
<a name="l63"></a>disabling </span><span class=cF2>AutoComplete</span><span class=cF0>; Specify smaller stack sizes when doing </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(), change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0>, and using </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l203"><span class=cF4>DocMax</span></a><span class=cF0>() to reduce
<a name="l63"></a>disabling </span><span class=cF2>AutoComplete</span><span class=cF0>; Specify smaller stack sizes when doing </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(), change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3547"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0>, and using </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l203"><span class=cF4>DocMax</span></a><span class=cF0>() to reduce
<a name="l64"></a>the cmd line buffer size.
<a name="l65"></a>
<a name="l66"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/Merge.CC.html#l45"><span class=cF4>Merge</span></a><span class=cF0>() can be used to see what's changed. The </span><span class=cF2>+d</span><span class=cF0> flag will show differences of files which have changed and allow you to
@ -189,7 +189,7 @@ body {background-color:#fef1f0;}
<a name="l162"></a>* Use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l139"><span class=cF4>HeapLogAddrRep</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>. You're on your own.
<a name="l165"></a>* For advanced heap debugging, play with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3477"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>. You're on your own.
<a name="l166"></a>
<a name="l167"></a>* You can use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocFile.CC.html#l378"><span class=cF4>Type</span></a><span class=cF0>() to display </span><span class=cF2>.GR</span><span class=cF0> files.
<a name="l168"></a>

View file

@ -25,14 +25,14 @@ body {background-color:#fef1f0;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF0>'s have a 4x4 matrix for rotating, scaling, skewing and shifting in 3 dimensions. To make the graphics routines use the
<a name="l2"></a>transform, you must set the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4270"><span class=cF4>DCF_TRANSFORMATION</span></a><span class=cF0> flag.
<a name="l1"></a><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF0>'s have a 4x4 matrix for rotating, scaling, skewing and shifting in 3 dimensions. To make the graphics routines use the
<a name="l2"></a>transform, you must set the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4273"><span class=cF4>DCF_TRANSFORMATION</span></a><span class=cF0> flag.
<a name="l3"></a>
<a name="l4"></a>The matrix consists of ints that have been scaled 32 bits (</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l4"><span class=cF4>GR_SCALE</span></a><span class=cF0>). See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Lectures/FixedPoint.CC.html#l1"><span class=cF4>::/Demo/Lectures/FixedPoint.CC</span></a><span class=cF0> to learn why.
<a name="l5"></a>
<a name="l6"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l27"><span class=cF4>Mat4x4IdentEqu</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l38"><span class=cF4>Mat4x4IdentNew</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l130"><span class=cF4>Mat4x4Equ</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l137"><span class=cF4>Mat4x4New</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l142"><span class=cF4>Mat4x4RotX</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l158"><span class=cF4>Mat4x4RotY</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l174"><span class=cF4>Mat4x4RotZ</span></a><span class=cF0>() and </span><span class=cF4>
<a name="l7"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l190"><span class=cF4>Mat4x4Scale</span></a><span class=cF0>() to rotate about axes and scale. Combine them with </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l104"><span class=cF4>Mat4x4MulMat4x4Equ</span></a><span class=cF0>()/</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l124"><span class=cF4>Mat4x4MulMat4x4New</span></a><span class=cF0>() and assign them to
<a name="l8"></a>the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF0>.</span><span class=cF2>dc</span><span class=cF0> with </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l51"><span class=cF4>DCMat4x4Set</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Box.CC.html#l1"><span class=cF4>::/Demo/Graphics/Box.CC</span></a><span class=cF0>.
<a name="l8"></a>the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF0>.</span><span class=cF2>dc</span><span class=cF0> with </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l51"><span class=cF4>DCMat4x4Set</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Box.CC.html#l1"><span class=cF4>::/Demo/Graphics/Box.CC</span></a><span class=cF0>.
<a name="l9"></a>
<a name="l10"></a>You can rotate single points using </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>().
<a name="l11"></a>
@ -40,9 +40,9 @@ body {background-color:#fef1f0;}
<a name="l13"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l124"><span class=cF4>Mat4x4MulMat4x4New</span></a><span class=cF0> them to combine rotation/shift operations. Normally, you can't combine pos shift operations. See </span><span class=cF4>
<a name="l14"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l216"><span class=cF4>Mat4x4TranslationEqu</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Transform.CC.html#l1"><span class=cF4>::/Demo/Graphics/Transform.CC</span></a><span class=cF0>.
<a name="l15"></a>
<a name="l16"></a>Finally, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><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="l16"></a>Finally, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><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="l18"></a>The transformation is implemented as a callback on the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><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://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l18"><span class=cF4>DCTransform</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.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://zeal-operating-system.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>

View file

@ -37,7 +37,7 @@ body {background-color:#fef1f0;}
<a name="l10"></a>
<a name="l11"></a>Simplicity is a goal to </span><a href="https://zeal-operating-system.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
<a name="l13"></a>other, similar things which boost speed. It's only 94,703 lines of code including the kernel, the 64-bit compiler, the
<a name="l13"></a>other, similar things which boost speed. It's only 94,722 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://zeal-operating-system.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>
@ -143,8 +143,8 @@ body {background-color:#fef1f0;}
<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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0>
<a name="l120"></a>segment reg and are accessed with </span><span class=cF4>Fs-&gt;</span><span class=cF0> while </span><span class=cF4>Gs-&gt;</span><span class=cF0> points to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF0> for the current CPU core. Each task can have just one
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0>
<a name="l120"></a>segment reg and are accessed with </span><span class=cF4>Fs-&gt;</span><span class=cF0> while </span><span class=cF4>Gs-&gt;</span><span class=cF0> points to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4099"><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>

View file

@ -172,101 +172,115 @@ body {background-color:#fef1f0;}
<a name="l145"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_NTFS</span><span class=cF0>;
<a name="l146"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l147"></a>
<a name="l148"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>:
<a name="l149"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>15</span><span class=cF0>:
<a name="l150"></a> j = i;
<a name="l151"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l152"></a>
<a name="l153"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l154"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l155"></a> drive-&gt;prt_num = num;
<a name="l156"></a> res++;
<a name="l157"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_UNKNOWN</span><span class=cF0>;
<a name="l158"></a> }
<a name="l159"></a> num++;
<a name="l160"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l161"></a> }
<a name="l162"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Letter2BlkDevType</span><span class=cF7>(</span><span class=cF0>bd-&gt;first_drive_let + res</span><span class=cF7>)</span><span class=cF0> != bd-&gt;type)
<a name="l163"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l164"></a> </span><span class=cF1>if</span><span class=cF0> (j &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l165"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l166"></a> </span><span class=cF1>if</span><span class=cF0> (!mbr.p[j].</span><span class=cF1>offset</span><span class=cF0>)
<a name="l167"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l168"></a> </span><span class=cF1>if</span><span class=cF0> (ext_base == </span><span class=cF3>INVALID_CLUS</span><span class=cF0>)
<a name="l169"></a> {
<a name="l170"></a> </span><span class=cF1>offset</span><span class=cF0> = mbr.p[j].</span><span class=cF1>offset</span><span class=cF0>;
<a name="l171"></a> ext_base = </span><span class=cF1>offset</span><span class=cF0>;
<a name="l172"></a> }
<a name="l173"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l174"></a> </span><span class=cF1>offset</span><span class=cF0> = mbr.p[j].</span><span class=cF1>offset</span><span class=cF0> + ext_base;
<a name="l175"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l176"></a> }
<a name="l177"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l178"></a>
<a name="l179"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
<a name="l180"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l181"></a> drive-&gt;prt_num = num;
<a name="l182"></a> res++;
<a name="l183"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_ISO9660</span><span class=cF0>; </span><span class=cF2>//Start with this</span><span class=cF0>
<a name="l184"></a> drive-&gt;size = </span><span class=cFE>0</span><span class=cF0>;
<a name="l185"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l186"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l187"></a> </span><span class=cF1>if</span><span class=cF0> (res)
<a name="l188"></a> </span><span class=cFD>BlkDevLockFwdingSet</span><span class=cF0>(bd);
<a name="l189"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l190"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(bd);
<a name="l191"></a>
<a name="l192"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l193"></a>}
<a name="l194"></a>
<a name="l195"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>DriveEnable</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let, </span><span class=cF1>Bool</span><span class=cF0> val)
<a name="l196"></a>{</span><span class=cF2>//Can unmount or remount, but not mount the first time.</span><span class=cF0>
<a name="l197"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive;
<a name="l198"></a>
<a name="l199"></a> </span><span class=cF1>if</span><span class=cF0> (drive = </span><span class=cF5>Letter2Drive</span><span class=cF7>(</span><span class=cF0>drv_let, </span><span class=cF3>FALSE</span><span class=cF7>)</span><span class=cF0>)
<a name="l200"></a> </span><span class=cF1>return</span><span class=cF0> !</span><span class=cF5>LBEqual</span><span class=cF0>(&amp;drive-&gt;fs_type, </span><span class=cF3>FStf_DISABLE</span><span class=cF0>, !val);
<a name="l201"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l202"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l203"></a>}
<a name="l204"></a>
<a name="l205"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cFD>SysI64Get</span><span class=cF0>()
<a name="l206"></a>{
<a name="l207"></a> </span><span class=cF1>U8</span><span class=cF0> st[</span><span class=cF3>STR_LEN</span><span class=cF0>];
<a name="l148"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MBR_PT_LINUX</span><span class=cF0>:
<a name="l149"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l150"></a> drive-&gt;prt_num = num;
<a name="l151"></a> res++;
<a name="l152"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_LINUX</span><span class=cF0>;
<a name="l153"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l154"></a>
<a name="l155"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MBR_PT_SWAP</span><span class=cF0>:
<a name="l156"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l157"></a> drive-&gt;prt_num = num;
<a name="l158"></a> res++;
<a name="l159"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_SWAP</span><span class=cF0>;
<a name="l160"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l161"></a>
<a name="l162"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>:
<a name="l163"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>15</span><span class=cF0>:
<a name="l164"></a> j = i;
<a name="l165"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l166"></a>
<a name="l167"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l168"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l169"></a> drive-&gt;prt_num = num;
<a name="l170"></a> res++;
<a name="l171"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_UNKNOWN</span><span class=cF0>;
<a name="l172"></a> }
<a name="l173"></a> num++;
<a name="l174"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l175"></a> }
<a name="l176"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Letter2BlkDevType</span><span class=cF7>(</span><span class=cF0>bd-&gt;first_drive_let + res</span><span class=cF7>)</span><span class=cF0> != bd-&gt;type)
<a name="l177"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l178"></a> </span><span class=cF1>if</span><span class=cF0> (j &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l179"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l180"></a> </span><span class=cF1>if</span><span class=cF0> (!mbr.p[j].</span><span class=cF1>offset</span><span class=cF0>)
<a name="l181"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l182"></a> </span><span class=cF1>if</span><span class=cF0> (ext_base == </span><span class=cF3>INVALID_CLUS</span><span class=cF0>)
<a name="l183"></a> {
<a name="l184"></a> </span><span class=cF1>offset</span><span class=cF0> = mbr.p[j].</span><span class=cF1>offset</span><span class=cF0>;
<a name="l185"></a> ext_base = </span><span class=cF1>offset</span><span class=cF0>;
<a name="l186"></a> }
<a name="l187"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l188"></a> </span><span class=cF1>offset</span><span class=cF0> = mbr.p[j].</span><span class=cF1>offset</span><span class=cF0> + ext_base;
<a name="l189"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l190"></a> }
<a name="l191"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l192"></a>
<a name="l193"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
<a name="l194"></a> drive-&gt;drive_signature = </span><span class=cF3>DRIVE_SIGNATURE_VAL</span><span class=cF0>;
<a name="l195"></a> drive-&gt;prt_num = num;
<a name="l196"></a> res++;
<a name="l197"></a> drive-&gt;fs_type = </span><span class=cF3>FSt_ISO9660</span><span class=cF0>; </span><span class=cF2>//Start with this</span><span class=cF0>
<a name="l198"></a> drive-&gt;size = </span><span class=cFE>0</span><span class=cF0>;
<a name="l199"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l200"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l201"></a> </span><span class=cF1>if</span><span class=cF0> (res)
<a name="l202"></a> </span><span class=cFD>BlkDevLockFwdingSet</span><span class=cF0>(bd);
<a name="l203"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l204"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(bd);
<a name="l205"></a>
<a name="l206"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l207"></a>}
<a name="l208"></a>
<a name="l209"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(st, </span><span class=cF3>STR_LEN</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l210"></a>
<a name="l211"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF5>Str2I64</span><span class=cF0>(st, </span><span class=cFE>16</span><span class=cF0>);
<a name="l212"></a>}
<a name="l213"></a>
<a name="l214"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cFD>BlkDevsInitAll</span><span class=cF0>()
<a name="l215"></a>{
<a name="l216"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd;
<a name="l217"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l209"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>DriveEnable</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let, </span><span class=cF1>Bool</span><span class=cF0> val)
<a name="l210"></a>{</span><span class=cF2>//Can unmount or remount, but not mount the first time.</span><span class=cF0>
<a name="l211"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive;
<a name="l212"></a>
<a name="l213"></a> </span><span class=cF1>if</span><span class=cF0> (drive = </span><span class=cF5>Letter2Drive</span><span class=cF7>(</span><span class=cF0>drv_let, </span><span class=cF3>FALSE</span><span class=cF7>)</span><span class=cF0>)
<a name="l214"></a> </span><span class=cF1>return</span><span class=cF0> !</span><span class=cF5>LBEqual</span><span class=cF0>(&amp;drive-&gt;fs_type, </span><span class=cF3>FStf_DISABLE</span><span class=cF0>, !val);
<a name="l215"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l216"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l217"></a>}
<a name="l218"></a>
<a name="l219"></a> </span><span class=cFB>blkdev</span><span class=cF0>.blkdevs = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CBlkDev</span><span class=cF7>)</span><span class=cF0> * </span><span class=cF3>BLKDEVS_NUM</span><span class=cF0>);
<a name="l220"></a> </span><span class=cFB>blkdev</span><span class=cF0>.drvs = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CDrive</span><span class=cF7>)</span><span class=cF0> * </span><span class=cF3>DRIVES_NUM</span><span class=cF0>);
<a name="l221"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; </span><span class=cF3>DRIVES_NUM</span><span class=cF0>; i++)
<a name="l222"></a> </span><span class=cFB>blkdev</span><span class=cF0>.let_to_drive[i] = &amp;</span><span class=cFB>blkdev</span><span class=cF0>.drvs[i];
<a name="l223"></a>
<a name="l224"></a> </span><span class=cFD>AHCIInit</span><span class=cF0>;
<a name="l225"></a>
<a name="l226"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cFB>blkdev</span><span class=cF0>.ahci_hba)
<a name="l227"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l228"></a> </span><span class=cF6>&quot;\nZealOS requires AHCI.\n\n&quot;</span><span class=cF0>
<a name="l229"></a> </span><span class=cF6>&quot;If in IDE compatibility mode, switch to SATA mode.\n&quot;</span><span class=cF0>
<a name="l230"></a> </span><span class=cF6>&quot;If running in a VM, ensure disks are organized under a SATA controller.\n\n&quot;</span><span class=cF0>
<a name="l231"></a> </span><span class=cF6>&quot;Rebooting in 10 seconds...\n&quot;</span><span class=cF0>;
<a name="l232"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>10</span><span class=cF0>*</span><span class=cFE>1000</span><span class=cF0>);
<a name="l233"></a> </span><span class=cF5>Reboot</span><span class=cF0>;
<a name="l234"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l235"></a>
<a name="l236"></a> #</span><span class=cF1>exe</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
<a name="l237"></a> </span><span class=cF1>if</span><span class=cF0> (kernel_config-&gt;opts[CONFIG_MOUNT_AHCI_AUTO])
<a name="l238"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;MountAHCIAuto;&quot;</span><span class=cF0>);
<a name="l239"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;#exe {Option(OPTf_WARN_PAREN, OFF);}&quot;</span><span class=cF0>);
<a name="l240"></a> </span><span class=cF5>StreamDoc</span><span class=cF0>(kernel_config-&gt;add_dev);
<a name="l241"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;#exe {Option(OPTf_WARN_PAREN, ON);}&quot;</span><span class=cF0>);
<a name="l242"></a> </span><span class=cF7>}</span><span class=cF0>;
<a name="l243"></a>}
<a name="l219"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cFD>SysI64Get</span><span class=cF0>()
<a name="l220"></a>{
<a name="l221"></a> </span><span class=cF1>U8</span><span class=cF0> st[</span><span class=cF3>STR_LEN</span><span class=cF0>];
<a name="l222"></a>
<a name="l223"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(st, </span><span class=cF3>STR_LEN</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l224"></a>
<a name="l225"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF5>Str2I64</span><span class=cF0>(st, </span><span class=cFE>16</span><span class=cF0>);
<a name="l226"></a>}
<a name="l227"></a>
<a name="l228"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cFD>BlkDevsInitAll</span><span class=cF0>()
<a name="l229"></a>{
<a name="l230"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd;
<a name="l231"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l232"></a>
<a name="l233"></a> </span><span class=cFB>blkdev</span><span class=cF0>.blkdevs = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CBlkDev</span><span class=cF7>)</span><span class=cF0> * </span><span class=cF3>BLKDEVS_NUM</span><span class=cF0>);
<a name="l234"></a> </span><span class=cFB>blkdev</span><span class=cF0>.drvs = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CDrive</span><span class=cF7>)</span><span class=cF0> * </span><span class=cF3>DRIVES_NUM</span><span class=cF0>);
<a name="l235"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; </span><span class=cF3>DRIVES_NUM</span><span class=cF0>; i++)
<a name="l236"></a> </span><span class=cFB>blkdev</span><span class=cF0>.let_to_drive[i] = &amp;</span><span class=cFB>blkdev</span><span class=cF0>.drvs[i];
<a name="l237"></a>
<a name="l238"></a> </span><span class=cFD>AHCIInit</span><span class=cF0>;
<a name="l239"></a>
<a name="l240"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cFB>blkdev</span><span class=cF0>.ahci_hba)
<a name="l241"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l242"></a> </span><span class=cF6>&quot;\nZealOS requires AHCI.\n\n&quot;</span><span class=cF0>
<a name="l243"></a> </span><span class=cF6>&quot;If in IDE compatibility mode, switch to SATA mode.\n&quot;</span><span class=cF0>
<a name="l244"></a> </span><span class=cF6>&quot;If running in a VM, ensure disks are organized under a SATA controller.\n\n&quot;</span><span class=cF0>
<a name="l245"></a> </span><span class=cF6>&quot;Rebooting in 10 seconds...\n&quot;</span><span class=cF0>;
<a name="l246"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>10</span><span class=cF0>*</span><span class=cFE>1000</span><span class=cF0>);
<a name="l247"></a> </span><span class=cF5>Reboot</span><span class=cF0>;
<a name="l248"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l249"></a>
<a name="l250"></a> #</span><span class=cF1>exe</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
<a name="l251"></a> </span><span class=cF1>if</span><span class=cF0> (kernel_config-&gt;opts[CONFIG_MOUNT_AHCI_AUTO])
<a name="l252"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;MountAHCIAuto;&quot;</span><span class=cF0>);
<a name="l253"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;#exe {Option(OPTf_WARN_PAREN, OFF);}&quot;</span><span class=cF0>);
<a name="l254"></a> </span><span class=cF5>StreamDoc</span><span class=cF0>(kernel_config-&gt;add_dev);
<a name="l255"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>&quot;#exe {Option(OPTf_WARN_PAREN, ON);}&quot;</span><span class=cF0>);
<a name="l256"></a> </span><span class=cF7>}</span><span class=cF0>;
<a name="l257"></a>}
</span></pre></body>
</html>

View file

@ -169,7 +169,7 @@ body {background-color:#fef1f0;}
<a name="l142"></a>
<a name="l143"></a></span><span class=cF9>CJob</span><span class=cF0> *</span><span class=cF5>TaskMessage</span><span class=cF0>(</span><span class=cF9>CTask</span><span class=cF0> *_server, </span><span class=cF9>CTask</span><span class=cF0> *master, </span><span class=cF9>I64</span><span class=cF0> message_code, </span><span class=cF9>I64</span><span class=cF0> arg1, </span><span class=cF9>I64</span><span class=cF0> arg2, </span><span class=cF9>I64</span><span class=cF0> flags)
<a name="l144"></a>{</span><span class=cF2>//Post message to servant task.</span><span class=cF0> </span><span class=cF2>Tell who the master task is.</span><span class=cF0>
<a name="l145"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3835"><span class=cF4>flags</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l145"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3838"><span class=cF4>flags</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l146"></a> </span><span class=cF9>CJob</span><span class=cF0> *tmpc1, *tmpc;
<a name="l147"></a> </span><span class=cF9>CTask</span><span class=cF0> *server = _server;
<a name="l148"></a>
@ -320,7 +320,7 @@ body {background-color:#fef1f0;}
<a name="l293"></a>}
<a name="l294"></a>
<a name="l295"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MessagePost</span><span class=cF0>(</span><span class=cF9>CTask</span><span class=cF0> *task, </span><span class=cF9>I64</span><span class=cF0> message_code, </span><span class=cF9>I64</span><span class=cF0> arg1, </span><span class=cF9>I64</span><span class=cF0> arg2, </span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>)
<a name="l296"></a>{</span><span class=cF2>//Post message to a task and return immediately. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l296"></a>{</span><span class=cF2>//Post message to a task and return immediately. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l297"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>TaskValidate</span><span class=cF7>(</span><span class=cF0>task</span><span class=cF7>)</span><span class=cF0>)
<a name="l298"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l299"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&amp;task-&gt;task_flags, </span><span class=cF3>TASKf_INPUT_FILTER_TASK</span><span class=cF7>)</span><span class=cF0>)
@ -331,13 +331,13 @@ body {background-color:#fef1f0;}
<a name="l304"></a>}
<a name="l305"></a>
<a name="l306"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MessagePostWait</span><span class=cF0>(</span><span class=cF9>CTask</span><span class=cF0> *task, </span><span class=cF9>I64</span><span class=cF0> message_code, </span><span class=cF9>I64</span><span class=cF0> arg1, </span><span class=cF9>I64</span><span class=cF0> arg2, </span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>)
<a name="l307"></a>{</span><span class=cF2>//Post message to a task and wait until task is idle.See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l307"></a>{</span><span class=cF2>//Post message to a task and wait until task is idle.See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l308"></a> </span><span class=cF5>MessagePost</span><span class=cF0>(task, message_code, arg1, arg2, flags);
<a name="l309"></a> </span><span class=cF5>TaskWait</span><span class=cF0>(task);
<a name="l310"></a>}
<a name="l311"></a>
<a name="l312"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Message</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> message_code, </span><span class=cF9>I64</span><span class=cF0> arg1, </span><span class=cF9>I64</span><span class=cF0> arg2, </span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>)
<a name="l313"></a>{</span><span class=cF2>//Post message to current task and return immediately. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l313"></a>{</span><span class=cF2>//Post message to current task and return immediately. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l314"></a> </span><span class=cF5>MessagePost</span><span class=cF0>(</span><span class=cF5>Fs</span><span class=cF0>, message_code, arg1, arg2, flags);
<a name="l315"></a>}
<a name="l316"></a>

View file

@ -250,162 +250,164 @@ body {background-color:#fef1f0;}
<a name="l223"></a> </span><span class=cF6>&quot;FAT32\0&quot;</span><span class=cF0>
<a name="l224"></a> </span><span class=cF6>&quot;ISO9660\0&quot;</span><span class=cF0>
<a name="l225"></a> </span><span class=cF6>&quot;NTFS\0&quot;</span><span class=cF0>
<a name="l226"></a> </span><span class=cF6>&quot;UNKNOWN\0&quot;</span><span class=cF0>);
<a name="l227"></a>
<a name="l228"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF0>,
<a name="l229"></a> </span><span class=cF6>&quot;BLACK\0&quot;</span><span class=cF0>
<a name="l230"></a> </span><span class=cF6>&quot;BLUE\0&quot;</span><span class=cF0>
<a name="l231"></a> </span><span class=cF6>&quot;GREEN\0&quot;</span><span class=cF0>
<a name="l232"></a> </span><span class=cF6>&quot;CYAN\0&quot;</span><span class=cF0>
<a name="l233"></a> </span><span class=cF6>&quot;RED\0&quot;</span><span class=cF0>
<a name="l234"></a> </span><span class=cF6>&quot;PURPLE\0&quot;</span><span class=cF0>
<a name="l235"></a> </span><span class=cF6>&quot;BROWN\0&quot;</span><span class=cF0>
<a name="l236"></a> </span><span class=cF6>&quot;LTGRAY\0&quot;</span><span class=cF0>
<a name="l237"></a> </span><span class=cF6>&quot;DKGRAY\0&quot;</span><span class=cF0>
<a name="l238"></a> </span><span class=cF6>&quot;LTBLUE\0&quot;</span><span class=cF0>
<a name="l239"></a> </span><span class=cF6>&quot;LTGREEN\0&quot;</span><span class=cF0>
<a name="l240"></a> </span><span class=cF6>&quot;LTCYAN\0&quot;</span><span class=cF0>
<a name="l241"></a> </span><span class=cF6>&quot;LTRED\0&quot;</span><span class=cF0>
<a name="l242"></a> </span><span class=cF6>&quot;LTPURPLE\0&quot;</span><span class=cF0>
<a name="l243"></a> </span><span class=cF6>&quot;YELLOW\0&quot;</span><span class=cF0>
<a name="l244"></a> </span><span class=cF6>&quot;WHITE\0&quot;</span><span class=cF0>);
<a name="l245"></a>
<a name="l246"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>&quot;ST_INT_NAMES&quot;</span><span class=cF0>,
<a name="l247"></a> </span><span class=cF6>&quot;Divide Error\0&quot;</span><span class=cF0>
<a name="l248"></a> </span><span class=cF6>&quot;SingleStep\0&quot;</span><span class=cF0>
<a name="l249"></a> </span><span class=cF6>&quot;NMI\0&quot;</span><span class=cF0>
<a name="l250"></a> </span><span class=cF6>&quot;Breakpoint\0&quot;</span><span class=cF0>
<a name="l251"></a> </span><span class=cF6>&quot;Overflow\0&quot;</span><span class=cF0>
<a name="l252"></a> </span><span class=cF6>&quot;BOUND Range Exceeded\0&quot;</span><span class=cF0>
<a name="l253"></a> </span><span class=cF6>&quot;Invalid Opcode\0&quot;</span><span class=cF0>
<a name="l254"></a> </span><span class=cF6>&quot;No Math Coprocessor\0&quot;</span><span class=cF0>
<a name="l255"></a> </span><span class=cF6>&quot;Double Fault\0&quot;</span><span class=cF0>
<a name="l256"></a> </span><span class=cF6>&quot;Coprocessor Segment Fault\0&quot;</span><span class=cF0>
<a name="l257"></a> </span><span class=cF6>&quot;Invalid TASK\0&quot;</span><span class=cF0>
<a name="l258"></a> </span><span class=cF6>&quot;Segment Not Present\0&quot;</span><span class=cF0>
<a name="l259"></a> </span><span class=cF6>&quot;Stack Segment Fault\0&quot;</span><span class=cF0>
<a name="l260"></a> </span><span class=cF6>&quot;General Protection\0&quot;</span><span class=cF0>
<a name="l261"></a> </span><span class=cF6>&quot;Page Fault\0&quot;</span><span class=cF0>
<a name="l262"></a> </span><span class=cF6>&quot; \0&quot;</span><span class=cF0>
<a name="l263"></a> </span><span class=cF6>&quot;Math Fault\0&quot;</span><span class=cF0>
<a name="l264"></a> </span><span class=cF6>&quot;Alignment Check\0&quot;</span><span class=cF0>
<a name="l265"></a> </span><span class=cF6>&quot;Machine Check\0&quot;</span><span class=cF0>
<a name="l266"></a> </span><span class=cF6>&quot;SIMD Exception\0&quot;</span><span class=cF0>
<a name="l267"></a> </span><span class=cF6>&quot; \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0&quot;</span><span class=cF0>
<a name="l268"></a> </span><span class=cF6>&quot; \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0&quot;</span><span class=cF0>
<a name="l269"></a> </span><span class=cF6>&quot;MP Crash\0&quot;</span><span class=cF0>
<a name="l270"></a> </span><span class=cF6>&quot;Wake\0&quot;</span><span class=cF0>
<a name="l271"></a> </span><span class=cF6>&quot;Debug\0&quot;</span><span class=cF0>);
<a name="l272"></a>}
<a name="l273"></a>
<a name="l274"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>Color2Str</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>CColorROPU32</span><span class=cF0> c)
<a name="l275"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF2> with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> str.</span><span class=cF0>
<a name="l276"></a> *buf = </span><span class=cFE>0</span><span class=cF0>;
<a name="l277"></a> </span><span class=cF1>if</span><span class=cF0> (c.c0.rop &amp; </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>)
<a name="l278"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TWO|&quot;</span><span class=cF0>);
<a name="l279"></a> </span><span class=cF1>if</span><span class=cF0> (c.c0.rop &amp; </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>)
<a name="l280"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;HALF|&quot;</span><span class=cF0>);
<a name="l281"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= c.c0.color &lt; </span><span class=cFE>16</span><span class=cF0>)
<a name="l282"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF5>DefineSub</span><span class=cF7>(</span><span class=cF0>c.c0.color, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF7>)</span><span class=cF0>);
<a name="l283"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (c.c0.color == </span><span class=cF3>TRANSPARENT</span><span class=cF0>)
<a name="l284"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF0>);
<a name="l285"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l286"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;INVALID&quot;</span><span class=cF0>);
<a name="l287"></a> </span><span class=cF1>if</span><span class=cF0> (c &amp; </span><span class=cF3>ROPF_DITHER</span><span class=cF0>)
<a name="l288"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l289"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;/&quot;</span><span class=cF0>);
<a name="l290"></a> </span><span class=cF1>if</span><span class=cF0> (c.c1.rop &amp; </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>)
<a name="l291"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TWO|&quot;</span><span class=cF0>);
<a name="l292"></a> </span><span class=cF1>if</span><span class=cF0> (c.c1.rop &amp; </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>)
<a name="l293"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;HALF|&quot;</span><span class=cF0>);
<a name="l294"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= c.c1.color &lt; </span><span class=cFE>16</span><span class=cF0>)
<a name="l295"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF5>DefineSub</span><span class=cF7>(</span><span class=cF0>c.c1.color, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF7>)</span><span class=cF0>);
<a name="l296"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (c.c1.color == </span><span class=cF3>TRANSPARENT</span><span class=cF0>)
<a name="l297"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF0>);
<a name="l298"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l299"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;INVALID&quot;</span><span class=cF0>);
<a name="l300"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l301"></a>
<a name="l302"></a> </span><span class=cF1>return</span><span class=cF0> buf;
<a name="l303"></a>}
<a name="l304"></a>
<a name="l305"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFD>str2color_list</span><span class=cF0> = </span><span class=cF6>&quot;/,)}&gt;&quot;</span><span class=cF0>;
<a name="l226"></a> </span><span class=cF6>&quot;LINUX\0&quot;</span><span class=cF0>
<a name="l227"></a> </span><span class=cF6>&quot;SWAP\0&quot;</span><span class=cF0>
<a name="l228"></a> </span><span class=cF6>&quot;UNKNOWN\0&quot;</span><span class=cF0>);
<a name="l229"></a>
<a name="l230"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF0>,
<a name="l231"></a> </span><span class=cF6>&quot;BLACK\0&quot;</span><span class=cF0>
<a name="l232"></a> </span><span class=cF6>&quot;BLUE\0&quot;</span><span class=cF0>
<a name="l233"></a> </span><span class=cF6>&quot;GREEN\0&quot;</span><span class=cF0>
<a name="l234"></a> </span><span class=cF6>&quot;CYAN\0&quot;</span><span class=cF0>
<a name="l235"></a> </span><span class=cF6>&quot;RED\0&quot;</span><span class=cF0>
<a name="l236"></a> </span><span class=cF6>&quot;PURPLE\0&quot;</span><span class=cF0>
<a name="l237"></a> </span><span class=cF6>&quot;BROWN\0&quot;</span><span class=cF0>
<a name="l238"></a> </span><span class=cF6>&quot;LTGRAY\0&quot;</span><span class=cF0>
<a name="l239"></a> </span><span class=cF6>&quot;DKGRAY\0&quot;</span><span class=cF0>
<a name="l240"></a> </span><span class=cF6>&quot;LTBLUE\0&quot;</span><span class=cF0>
<a name="l241"></a> </span><span class=cF6>&quot;LTGREEN\0&quot;</span><span class=cF0>
<a name="l242"></a> </span><span class=cF6>&quot;LTCYAN\0&quot;</span><span class=cF0>
<a name="l243"></a> </span><span class=cF6>&quot;LTRED\0&quot;</span><span class=cF0>
<a name="l244"></a> </span><span class=cF6>&quot;LTPURPLE\0&quot;</span><span class=cF0>
<a name="l245"></a> </span><span class=cF6>&quot;YELLOW\0&quot;</span><span class=cF0>
<a name="l246"></a> </span><span class=cF6>&quot;WHITE\0&quot;</span><span class=cF0>);
<a name="l247"></a>
<a name="l248"></a> </span><span class=cF5>DefineListLoad</span><span class=cF0>(</span><span class=cF6>&quot;ST_INT_NAMES&quot;</span><span class=cF0>,
<a name="l249"></a> </span><span class=cF6>&quot;Divide Error\0&quot;</span><span class=cF0>
<a name="l250"></a> </span><span class=cF6>&quot;SingleStep\0&quot;</span><span class=cF0>
<a name="l251"></a> </span><span class=cF6>&quot;NMI\0&quot;</span><span class=cF0>
<a name="l252"></a> </span><span class=cF6>&quot;Breakpoint\0&quot;</span><span class=cF0>
<a name="l253"></a> </span><span class=cF6>&quot;Overflow\0&quot;</span><span class=cF0>
<a name="l254"></a> </span><span class=cF6>&quot;BOUND Range Exceeded\0&quot;</span><span class=cF0>
<a name="l255"></a> </span><span class=cF6>&quot;Invalid Opcode\0&quot;</span><span class=cF0>
<a name="l256"></a> </span><span class=cF6>&quot;No Math Coprocessor\0&quot;</span><span class=cF0>
<a name="l257"></a> </span><span class=cF6>&quot;Double Fault\0&quot;</span><span class=cF0>
<a name="l258"></a> </span><span class=cF6>&quot;Coprocessor Segment Fault\0&quot;</span><span class=cF0>
<a name="l259"></a> </span><span class=cF6>&quot;Invalid TASK\0&quot;</span><span class=cF0>
<a name="l260"></a> </span><span class=cF6>&quot;Segment Not Present\0&quot;</span><span class=cF0>
<a name="l261"></a> </span><span class=cF6>&quot;Stack Segment Fault\0&quot;</span><span class=cF0>
<a name="l262"></a> </span><span class=cF6>&quot;General Protection\0&quot;</span><span class=cF0>
<a name="l263"></a> </span><span class=cF6>&quot;Page Fault\0&quot;</span><span class=cF0>
<a name="l264"></a> </span><span class=cF6>&quot; \0&quot;</span><span class=cF0>
<a name="l265"></a> </span><span class=cF6>&quot;Math Fault\0&quot;</span><span class=cF0>
<a name="l266"></a> </span><span class=cF6>&quot;Alignment Check\0&quot;</span><span class=cF0>
<a name="l267"></a> </span><span class=cF6>&quot;Machine Check\0&quot;</span><span class=cF0>
<a name="l268"></a> </span><span class=cF6>&quot;SIMD Exception\0&quot;</span><span class=cF0>
<a name="l269"></a> </span><span class=cF6>&quot; \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0&quot;</span><span class=cF0>
<a name="l270"></a> </span><span class=cF6>&quot; \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0&quot;</span><span class=cF0>
<a name="l271"></a> </span><span class=cF6>&quot;MP Crash\0&quot;</span><span class=cF0>
<a name="l272"></a> </span><span class=cF6>&quot;Wake\0&quot;</span><span class=cF0>
<a name="l273"></a> </span><span class=cF6>&quot;Debug\0&quot;</span><span class=cF0>);
<a name="l274"></a>}
<a name="l275"></a>
<a name="l276"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>Color2Str</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>CColorROPU32</span><span class=cF0> c)
<a name="l277"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3644"><span class=cF4>CColorROPU32</span></a><span class=cF2> with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> str.</span><span class=cF0>
<a name="l278"></a> *buf = </span><span class=cFE>0</span><span class=cF0>;
<a name="l279"></a> </span><span class=cF1>if</span><span class=cF0> (c.c0.rop &amp; </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>)
<a name="l280"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TWO|&quot;</span><span class=cF0>);
<a name="l281"></a> </span><span class=cF1>if</span><span class=cF0> (c.c0.rop &amp; </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>)
<a name="l282"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;HALF|&quot;</span><span class=cF0>);
<a name="l283"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= c.c0.color &lt; </span><span class=cFE>16</span><span class=cF0>)
<a name="l284"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF5>DefineSub</span><span class=cF7>(</span><span class=cF0>c.c0.color, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF7>)</span><span class=cF0>);
<a name="l285"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (c.c0.color == </span><span class=cF3>TRANSPARENT</span><span class=cF0>)
<a name="l286"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF0>);
<a name="l287"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l288"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;INVALID&quot;</span><span class=cF0>);
<a name="l289"></a> </span><span class=cF1>if</span><span class=cF0> (c &amp; </span><span class=cF3>ROPF_DITHER</span><span class=cF0>)
<a name="l290"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l291"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;/&quot;</span><span class=cF0>);
<a name="l292"></a> </span><span class=cF1>if</span><span class=cF0> (c.c1.rop &amp; </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>)
<a name="l293"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TWO|&quot;</span><span class=cF0>);
<a name="l294"></a> </span><span class=cF1>if</span><span class=cF0> (c.c1.rop &amp; </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>)
<a name="l295"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;HALF|&quot;</span><span class=cF0>);
<a name="l296"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= c.c1.color &lt; </span><span class=cFE>16</span><span class=cF0>)
<a name="l297"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF5>DefineSub</span><span class=cF7>(</span><span class=cF0>c.c1.color, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF7>)</span><span class=cF0>);
<a name="l298"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (c.c1.color == </span><span class=cF3>TRANSPARENT</span><span class=cF0>)
<a name="l299"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF0>);
<a name="l300"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l301"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;INVALID&quot;</span><span class=cF0>);
<a name="l302"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l303"></a>
<a name="l304"></a> </span><span class=cF1>return</span><span class=cF0> buf;
<a name="l305"></a>}
<a name="l306"></a>
<a name="l307"></a></span><span class=cF9>CColorROPU16</span><span class=cF0> </span><span class=cF5>Str2ColorU16</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
<a name="l308"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3637"><span class=cF4>CColorROPU16</span></a><span class=cF2>.</span><span class=cF0>
<a name="l309"></a> </span><span class=cF9>CColorROPU16</span><span class=cF0> res = </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l310"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l311"></a> </span><span class=cF1>U8</span><span class=cF0> *ptr, *ptr2, *st2;
<a name="l312"></a>
<a name="l313"></a> </span><span class=cF1>if</span><span class=cF0> (!st)
<a name="l314"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l315"></a>
<a name="l316"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF3>TRUE</span><span class=cF0>)
<a name="l317"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l318"></a> </span><span class=cF1>if</span><span class=cF0> (!*st || </span><span class=cF5>StrOcc</span><span class=cF7>(</span><span class=cFD>str2color_list</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l319"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l320"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_alpha</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l321"></a> {
<a name="l322"></a> ptr = st;
<a name="l323"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_alpha_numeric</span><span class=cF0>, *ptr</span><span class=cF7>)</span><span class=cF0>)
<a name="l324"></a> ptr++;
<a name="l325"></a> st2 = ptr2 = </span><span class=cF5>MAlloc</span><span class=cF0>(ptr - st + </span><span class=cFE>1</span><span class=cF0>);
<a name="l326"></a> </span><span class=cF1>while</span><span class=cF0> (st &lt; ptr)
<a name="l327"></a> *ptr2++ = *st++;
<a name="l328"></a> *ptr2++ = </span><span class=cFE>0</span><span class=cF0>;
<a name="l329"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;TWO&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l330"></a> res.rop |= </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>;
<a name="l331"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;HALF&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l332"></a> res.rop |= </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>;
<a name="l333"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>i = </span><span class=cF5>DefineMatch</span><span class=cF0>(st2, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF0>, </span><span class=cF3>LMF_IGNORE_CASE</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0> &gt;= </span><span class=cFE>0</span><span class=cF0>)
<a name="l334"></a> res.color = i;
<a name="l335"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l336"></a> res.color = </span><span class=cF3>TRANSPARENT</span><span class=cF0>;
<a name="l337"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l338"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l339"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l340"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l341"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l342"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l343"></a> }
<a name="l344"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (*st == </span><span class=cF6>'+'</span><span class=cF0> || *st == </span><span class=cF6>'|'</span><span class=cF0> || </span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_white_space</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l345"></a> st++;
<a name="l346"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF6>'0'</span><span class=cF0> &lt;= *st &lt;= </span><span class=cF6>'9'</span><span class=cF0>)
<a name="l347"></a> {
<a name="l348"></a> i = </span><span class=cF5>Str2I64</span><span class=cF0>(st, </span><span class=cFE>10</span><span class=cF0>, &amp;ptr);
<a name="l349"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= i &lt;= </span><span class=cFE>0xFF</span><span class=cF0>)
<a name="l350"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l351"></a> res.color = i;
<a name="l352"></a> st = ptr;
<a name="l353"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l354"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l355"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l356"></a> }
<a name="l357"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l358"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l359"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l360"></a>}
<a name="l361"></a>
<a name="l362"></a></span><span class=cF9>CColorROPU32</span><span class=cF0> </span><span class=cF5>Str2ColorU32</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
<a name="l363"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF2>.</span><span class=cF0>
<a name="l364"></a> </span><span class=cF1>U8</span><span class=cF0> *st2;
<a name="l365"></a> </span><span class=cF9>CColorROPU32</span><span class=cF0> res = </span><span class=cFE>0</span><span class=cF0>;
<a name="l366"></a>
<a name="l367"></a> </span><span class=cF1>if</span><span class=cF0> (!st)
<a name="l368"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l369"></a>
<a name="l370"></a> st2 = </span><span class=cF5>MAlloc</span><span class=cF0>(</span><span class=cF5>StrLen</span><span class=cF7>(</span><span class=cF0>st</span><span class=cF7>)</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
<a name="l371"></a> </span><span class=cF5>StrFirstRemove</span><span class=cF0>(st, </span><span class=cFD>str2color_list</span><span class=cF0>, st2);
<a name="l372"></a> res.c0 = </span><span class=cF5>Str2ColorU16</span><span class=cF0>(st2);
<a name="l373"></a> </span><span class=cF1>if</span><span class=cF0> (*st)
<a name="l374"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l375"></a> res.c1 = </span><span class=cF5>Str2ColorU16</span><span class=cF0>(st);
<a name="l376"></a> res |= </span><span class=cF3>ROPF_DITHER</span><span class=cF0>;
<a name="l377"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l378"></a> </span><span class=cF1>if</span><span class=cF0> (res.c0.color == </span><span class=cF3>COLOR_INVALID</span><span class=cF0> || res.c1.color == </span><span class=cF3>COLOR_INVALID</span><span class=cF0>)
<a name="l379"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l380"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l381"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l382"></a>}
<a name="l307"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFD>str2color_list</span><span class=cF0> = </span><span class=cF6>&quot;/,)}&gt;&quot;</span><span class=cF0>;
<a name="l308"></a>
<a name="l309"></a></span><span class=cF9>CColorROPU16</span><span class=cF0> </span><span class=cF5>Str2ColorU16</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
<a name="l310"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3640"><span class=cF4>CColorROPU16</span></a><span class=cF2>.</span><span class=cF0>
<a name="l311"></a> </span><span class=cF9>CColorROPU16</span><span class=cF0> res = </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l312"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l313"></a> </span><span class=cF1>U8</span><span class=cF0> *ptr, *ptr2, *st2;
<a name="l314"></a>
<a name="l315"></a> </span><span class=cF1>if</span><span class=cF0> (!st)
<a name="l316"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l317"></a>
<a name="l318"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF3>TRUE</span><span class=cF0>)
<a name="l319"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l320"></a> </span><span class=cF1>if</span><span class=cF0> (!*st || </span><span class=cF5>StrOcc</span><span class=cF7>(</span><span class=cFD>str2color_list</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l321"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l322"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_alpha</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l323"></a> {
<a name="l324"></a> ptr = st;
<a name="l325"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_alpha_numeric</span><span class=cF0>, *ptr</span><span class=cF7>)</span><span class=cF0>)
<a name="l326"></a> ptr++;
<a name="l327"></a> st2 = ptr2 = </span><span class=cF5>MAlloc</span><span class=cF0>(ptr - st + </span><span class=cFE>1</span><span class=cF0>);
<a name="l328"></a> </span><span class=cF1>while</span><span class=cF0> (st &lt; ptr)
<a name="l329"></a> *ptr2++ = *st++;
<a name="l330"></a> *ptr2++ = </span><span class=cFE>0</span><span class=cF0>;
<a name="l331"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;TWO&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l332"></a> res.rop |= </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>;
<a name="l333"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;HALF&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l334"></a> res.rop |= </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0>;
<a name="l335"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>i = </span><span class=cF5>DefineMatch</span><span class=cF0>(st2, </span><span class=cF6>&quot;ST_COLORS&quot;</span><span class=cF0>, </span><span class=cF3>LMF_IGNORE_CASE</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0> &gt;= </span><span class=cFE>0</span><span class=cF0>)
<a name="l336"></a> res.color = i;
<a name="l337"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>StrICompare</span><span class=cF7>(</span><span class=cF0>st2, </span><span class=cF6>&quot;TRANSPARENT&quot;</span><span class=cF7>)</span><span class=cF0>)
<a name="l338"></a> res.color = </span><span class=cF3>TRANSPARENT</span><span class=cF0>;
<a name="l339"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l340"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l341"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l342"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l343"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l344"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
<a name="l345"></a> }
<a name="l346"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (*st == </span><span class=cF6>'+'</span><span class=cF0> || *st == </span><span class=cF6>'|'</span><span class=cF0> || </span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>char_bmp_white_space</span><span class=cF0>, *st</span><span class=cF7>)</span><span class=cF0>)
<a name="l347"></a> st++;
<a name="l348"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF6>'0'</span><span class=cF0> &lt;= *st &lt;= </span><span class=cF6>'9'</span><span class=cF0>)
<a name="l349"></a> {
<a name="l350"></a> i = </span><span class=cF5>Str2I64</span><span class=cF0>(st, </span><span class=cFE>10</span><span class=cF0>, &amp;ptr);
<a name="l351"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= i &lt;= </span><span class=cFE>0xFF</span><span class=cF0>)
<a name="l352"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l353"></a> res.color = i;
<a name="l354"></a> st = ptr;
<a name="l355"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l356"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l357"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l358"></a> }
<a name="l359"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l360"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l361"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l362"></a>}
<a name="l363"></a>
<a name="l364"></a></span><span class=cF9>CColorROPU32</span><span class=cF0> </span><span class=cF5>Str2ColorU32</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
<a name="l365"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3644"><span class=cF4>CColorROPU32</span></a><span class=cF2>.</span><span class=cF0>
<a name="l366"></a> </span><span class=cF1>U8</span><span class=cF0> *st2;
<a name="l367"></a> </span><span class=cF9>CColorROPU32</span><span class=cF0> res = </span><span class=cFE>0</span><span class=cF0>;
<a name="l368"></a>
<a name="l369"></a> </span><span class=cF1>if</span><span class=cF0> (!st)
<a name="l370"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l371"></a>
<a name="l372"></a> st2 = </span><span class=cF5>MAlloc</span><span class=cF0>(</span><span class=cF5>StrLen</span><span class=cF7>(</span><span class=cF0>st</span><span class=cF7>)</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
<a name="l373"></a> </span><span class=cF5>StrFirstRemove</span><span class=cF0>(st, </span><span class=cFD>str2color_list</span><span class=cF0>, st2);
<a name="l374"></a> res.c0 = </span><span class=cF5>Str2ColorU16</span><span class=cF0>(st2);
<a name="l375"></a> </span><span class=cF1>if</span><span class=cF0> (*st)
<a name="l376"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l377"></a> res.c1 = </span><span class=cF5>Str2ColorU16</span><span class=cF0>(st);
<a name="l378"></a> res |= </span><span class=cF3>ROPF_DITHER</span><span class=cF0>;
<a name="l379"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l380"></a> </span><span class=cF1>if</span><span class=cF0> (res.c0.color == </span><span class=cF3>COLOR_INVALID</span><span class=cF0> || res.c1.color == </span><span class=cF3>COLOR_INVALID</span><span class=cF0>)
<a name="l381"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
<a name="l382"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l383"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l384"></a>}
</span></pre></body>
</html>

View file

@ -242,7 +242,7 @@ body {background-color:#fef1f0;}
<a name="l215"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l216"></a> </span><span class=cF9>CSysLimitBase</span><span class=cF0> tmp_ptr;
<a name="l217"></a>
<a name="l218"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>Gs</span><span class=cF0>-&gt;num) </span><span class=cF2>//Gs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF2> struct</span><span class=cF0>
<a name="l218"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>Gs</span><span class=cF0>-&gt;num) </span><span class=cF2>//Gs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4099"><span class=cF4>CCPU</span></a><span class=cF2> struct</span><span class=cF0>
<a name="l219"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l220"></a> </span><span class=cFB>dev</span><span class=cF0>.idt = </span><span class=cF5>CAllocAligned</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CIDTEntry</span><span class=cF7>)</span><span class=cF0> * </span><span class=cFE>256</span><span class=cF0>, </span><span class=cFE>8</span><span class=cF0>);
<a name="l221"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; </span><span class=cFE>256</span><span class=cF0>; i++)

View file

@ -294,7 +294,7 @@ body {background-color:#fef1f0;}
<a name="l267"></a> </span><span class=cF9>I64</span><span class=cF0> stack_size=</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF2>// 0=default</span><span class=cF0>
<a name="l268"></a> </span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_ADD_TO_QUE</span><span class=cF0>)
<a name="l269"></a>{</span><span class=cF2>//Create task on core running at address.</span><span class=cF0>
<a name="l270"></a></span><span class=cF2>//Alloc </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> structure from code heap so addr will be short.</span><span class=cF0>
<a name="l270"></a></span><span class=cF2>//Alloc </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> structure from code heap so addr will be short.</span><span class=cF0>
<a name="l271"></a> </span><span class=cF2>//Could be alloced off of data heap.</span><span class=cF0>
<a name="l272"></a> </span><span class=cF9>CTask</span><span class=cF0> *task;
<a name="l273"></a>

File diff suppressed because it is too large Load diff

View file

@ -214,14 +214,14 @@ body {background-color:#fef1f0;}
<a name="l187"></a>
<a name="l188"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;MultiCore&quot;</span><span class=cF0>
<a name="l189"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/MultiCore&quot;</span><span class=cF0>
<a name="l190"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CPU_STRUCTS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cFB>cpu_structs</span><span class=cF0>; </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l197"><span class=cF4>Gs</span></a><span class=cF2> points to cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l190"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CPU_STRUCTS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cFB>cpu_structs</span><span class=cF0>; </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l197"><span class=cF4>Gs</span></a><span class=cF2> points to cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4099"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l191"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count</span><span class=cF0>; </span><span class=cF2>//Count of cores</span><span class=cF0>
<a name="l192"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT_INITIAL</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count_initial</span><span class=cF0>; </span><span class=cF2>//only used during </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/MultiProc.CC.html#l298"><span class=cF4>Core0StartMP</span></a><span class=cF0>
<a name="l193"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT_LOCK</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count_lock</span><span class=cF0>;
<a name="l194"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_SEMAS</span><span class=cF0> </span><span class=cF9>CSema</span><span class=cF0> </span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_SEMAS_NUM</span><span class=cF0>];
<a name="l195"></a>
<a name="l196"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;MultiCore;Processor&quot;</span><span class=cF0>
<a name="l197"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_GS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cF5>Gs</span><span class=cF0>(); </span><span class=cF2>//GS points to current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l197"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_GS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cF5>Gs</span><span class=cF0>(); </span><span class=cF2>//GS points to current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4099"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l198"></a>
<a name="l199"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;PCI&quot;</span><span class=cF0>
<a name="l200"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PCI_BUSES</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cFB>sys_pci_buses</span><span class=cF0>; </span><span class=cF2>//Number of PCI buses.</span><span class=cF0>
@ -264,7 +264,7 @@ body {background-color:#fef1f0;}
<a name="l237"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_PAGE_SIZE</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cFB>mem_page_size</span><span class=cF0>;
<a name="l238"></a>
<a name="l239"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Task;Processor&quot;</span><span class=cF0>
<a name="l240"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_FS</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> *</span><span class=cF5>Fs</span><span class=cF0>(); </span><span class=cF2>//FS seg reg points to the current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2>.</span><span class=cF0>
<a name="l240"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_FS</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> *</span><span class=cF5>Fs</span><span class=cF0>(); </span><span class=cF2>//FS seg reg points to the current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2>.</span><span class=cF0>
<a name="l241"></a>
<a name="l242"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Time/CPU Cycles&quot;</span><span class=cF0>
<a name="l243"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/TimeCycles&quot;</span><span class=cF0>

View file

@ -515,7 +515,7 @@ body {background-color:#fef1f0;}
<a name="l488"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> *</span><span class=cFB>sys_macro_task</span><span class=cF0>;
<a name="l489"></a>
<a name="l490"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Keyboard Devices;Char/Input;StdIn&quot;</span><span class=cF0>
<a name="l491"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *(*</span><span class=cFB>fp_getstr2</span><span class=cF0>)(</span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>); </span><span class=cF2>//StrGet </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4366"><span class=cF4>Flags</span></a><span class=cF0>
<a name="l491"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *(*</span><span class=cFB>fp_getstr2</span><span class=cF0>)(</span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>); </span><span class=cF2>//StrGet </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4369"><span class=cF4>Flags</span></a><span class=cF0>
<a name="l492"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>AreYouSure</span><span class=cF0>();
<a name="l493"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>extern</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CharGet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_scan_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> echo=</span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> raw_cursor=</span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l494"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>extern</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>KeyGet</span><span class=cF0>( </span><span class=cF9>I64</span><span class=cF0> *_scan_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> echo=</span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> raw_cursor=</span><span class=cF3>FALSE</span><span class=cF0>);

View file

@ -285,7 +285,7 @@ body {background-color:#fef1f0;}
<a name="l258"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>, </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF9>CMemUsed</span><span class=cF0>.size - </span><span class=cF9>CMemUsed</span><span class=cF0>.</span><span class=cF1>start</span><span class=cF0>[</span><span class=cFC>RSI</span><span class=cF0>]
<a name="l259"></a> </span><span class=cF1>TEST</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>, </span><span class=cFC>RAX</span><span class=cF0>
<a name="l260"></a> </span><span class=cF1>JGE</span><span class=cF0> @@20 </span><span class=cF2>//Aligned alloced chunks have neg size.</span><span class=cF0>
<a name="l261"></a> </span><span class=cF2>//The neg size is offset to start of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3500"><span class=cF4>CMemUsed</span></a><span class=cF2> struct.</span><span class=cF0>
<a name="l261"></a> </span><span class=cF2>//The neg size is offset to start of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3503"><span class=cF4>CMemUsed</span></a><span class=cF2> struct.</span><span class=cF0>
<a name="l262"></a> </span><span class=cF1>ADD</span><span class=cF0> </span><span class=cFC>RSI</span><span class=cF0>, </span><span class=cFC>RAX</span><span class=cF0>
<a name="l263"></a>
<a name="l264"></a>@@20: </span><span class=cF1>PUSHFD</span><span class=cF0>
@ -414,9 +414,9 @@ body {background-color:#fef1f0;}
<a name="l387"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FREE</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Free</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *addr); </span><span class=cF2>//Free </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF2>()ed memory chunk.</span><span class=cF0>
<a name="l388"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSIZE</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MSize</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//Size of heap object.</span><span class=cF0>
<a name="l389"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSIZE2</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MSize2</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//Internal size of heap object.</span><span class=cF0>
<a name="l390"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MHEAP_CTRL</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *</span><span class=cF5>MHeapCtrl</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2> of object.</span><span class=cF0>
<a name="l390"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MHEAP_CTRL</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *</span><span class=cF5>MHeapCtrl</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF2> of object.</span><span class=cF0>
<a name="l391"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MALLOC</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>MAlloc</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> size, </span><span class=cF9>CTask</span><span class=cF0> *mem_task=</span><span class=cF3>NULL</span><span class=cF0>); </span><span class=cF2>//Alloc memory chunk.</span><span class=cF0>
<a name="l392"></a></span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l392"></a></span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l393"></a>
<a name="l394"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>SysMAlloc</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> size)
<a name="l395"></a>{</span><span class=cF2>//Alloc memory in System task's heap.</span><span class=cF0>
@ -424,7 +424,7 @@ body {background-color:#fef1f0;}
<a name="l397"></a>}
<a name="l398"></a>
<a name="l399"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> size, </span><span class=cF9>CTask</span><span class=cF0> *mem_task=</span><span class=cF3>NULL</span><span class=cF0>)
<a name="l400"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l400"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l401"></a> </span><span class=cF1>U8</span><span class=cF0> *res = </span><span class=cF5>MAlloc</span><span class=cF0>(size, mem_task);
<a name="l402"></a>
<a name="l403"></a> </span><span class=cF5>MemSet</span><span class=cF0>(res, </span><span class=cFE>0</span><span class=cF0>, size);
@ -438,7 +438,7 @@ body {background-color:#fef1f0;}
<a name="l411"></a>}
<a name="l412"></a>
<a name="l413"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>MAllocIdent</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *src, </span><span class=cF9>CTask</span><span class=cF0> *mem_task=</span><span class=cF3>NULL</span><span class=cF0>)
<a name="l414"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l414"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l415"></a> </span><span class=cF1>U8</span><span class=cF0> *res;
<a name="l416"></a> </span><span class=cF9>I64</span><span class=cF0> size;
<a name="l417"></a>
@ -509,7 +509,7 @@ body {background-color:#fef1f0;}
<a name="l482"></a>}
<a name="l483"></a>
<a name="l484"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>StrNew</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>CTask</span><span class=cF0> *mem_task=</span><span class=cF3>NULL</span><span class=cF0>)
<a name="l485"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l485"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3567"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
<a name="l486"></a> </span><span class=cF1>U8</span><span class=cF0> *res;
<a name="l487"></a> </span><span class=cF9>I64</span><span class=cF0> size;
<a name="l488"></a>

View file

@ -78,7 +78,7 @@ body {background-color:#fef1f0;}
<a name="l51"></a> </span><span class=cF1>MOV</span><span class=cF0> [</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0>], </span><span class=cFC>EAX</span><span class=cF0>
<a name="l52"></a> </span><span class=cF1>MOV</span><span class=cF0> [</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0> + </span><span class=cFE>4</span><span class=cF0>], </span><span class=cFC>EDX</span><span class=cF0>
<a name="l53"></a>
<a name="l54"></a></span><span class=cF2>//Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4120"><span class=cF4>CSysFixedArea</span></a><span class=cF2> to zero</span><span class=cF0>
<a name="l54"></a></span><span class=cF2>//Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4123"><span class=cF4>CSysFixedArea</span></a><span class=cF2> to zero</span><span class=cF0>
<a name="l55"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>EDI</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>
<a name="l56"></a> </span><span class=cF1>XOR</span><span class=cF0> </span><span class=cFC>EAX</span><span class=cF0>, </span><span class=cFC>EAX</span><span class=cF0>
<a name="l57"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>ECX</span><span class=cF0>, </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CSysFixedArea</span><span class=cF0>) / </span><span class=cFE>4</span><span class=cF0>

View file

@ -376,7 +376,7 @@ body {background-color:#fef1f0;}
<a name="l349"></a> </span><span class=cF5>StrPrint</span><span class=cF0>(buf, </span><span class=cF6>&quot;Executive Task CPU%02X&quot;</span><span class=cF0>, i);
<a name="l350"></a> task = </span><span class=cF5>Spawn</span><span class=cF0>(&amp;</span><span class=cFD>CoreAPExecutiveInit</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, buf,,, </span><span class=cF3>MEM_EXECUTIVE_STACK</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>);
<a name="l351"></a> task-&gt;rflags = </span><span class=cF3>RFLAGG_START</span><span class=cF0>;
<a name="l352"></a></span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> alloced off this core's executive_task's heap (Which is System task)</span><span class=cF0>
<a name="l352"></a></span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3980"><span class=cF4>CTask</span></a><span class=cF2> alloced off this core's executive_task's heap (Which is System task)</span><span class=cF0>
<a name="l353"></a> </span><span class=cFD>CPUStructInit</span><span class=cF0>(i, &amp;</span><span class=cFB>cpu_structs</span><span class=cF0>[i], task);
<a name="l354"></a> </span><span class=cF1>WBINVD</span><span class=cF0> </span><span class=cF2>//Not sure why this is needed. Might just need delay.</span><span class=cF0>
<a name="l355"></a> </span><span class=cF7>}</span><span class=cF0>

View file

@ -70,7 +70,7 @@ body {background-color:#fef1f0;}
<a name="l43"></a>{</span><span class=cF2>/*Check for a message of type specified by a one in the mask.</span><span class=cF0>
<a name="l44"></a></span><span class=cF2>Throw-out messages not in mask.</span><span class=cF0>
<a name="l45"></a></span><span class=cF2>If no message fit mask, return NULL immediately.</span><span class=cF0>
<a name="l46"></a></span><span class=cF2>Remove desired message, return </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l46"></a></span><span class=cF2>Remove desired message, return </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l47"></a></span><span class=cF2>Note: This delivers messages from parent down to pop-up.</span><span class=cF0>
<a name="l48"></a></span><span class=cF2>*/</span><span class=cF0>
<a name="l49"></a> </span><span class=cF9>I64</span><span class=cF0> res, old_flags;
@ -136,7 +136,7 @@ body {background-color:#fef1f0;}
<a name="l109"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MessageGet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_arg1=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> *_arg2=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> mask=~</span><span class=cFE>1</span><span class=cF0>, </span><span class=cF9>CTask</span><span class=cF0> *task=</span><span class=cF3>NULL</span><span class=cF0>)
<a name="l110"></a>{</span><span class=cF2>//Wait for a message of type specified by a one in the mask.</span><span class=cF0>
<a name="l111"></a></span><span class=cF2>//Throw-out all messages not in mask.</span><span class=cF0>
<a name="l112"></a> </span><span class=cF2>//Returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/MessageLoop.CC.html#l1"><span class=cF4>::/Demo/MessageLoop.CC</span></a><span class=cF2>.</span><span class=cF0>
<a name="l112"></a> </span><span class=cF2>//Returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3884"><span class=cF4>message_code</span></a><span class=cF2>. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/MessageLoop.CC.html#l1"><span class=cF4>::/Demo/MessageLoop.CC</span></a><span class=cF2>.</span><span class=cF0>
<a name="l113"></a> </span><span class=cF9>I64</span><span class=cF0> res;
<a name="l114"></a>
<a name="l115"></a> </span><span class=cF1>if</span><span class=cF0> (!task)
@ -153,8 +153,8 @@ body {background-color:#fef1f0;}
<a name="l126"></a>}
<a name="l127"></a>
<a name="l128"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CharScan</span><span class=cF0>()
<a name="l129"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns 0 immediately if no key.</span><span class=cF0>
<a name="l130"></a></span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3883"><span class=cF4>MESSAGE_KEY_UP</span></a><span class=cF2> of non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> key and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> if key.</span><span class=cF0>
<a name="l129"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3885"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns 0 immediately if no key.</span><span class=cF0>
<a name="l130"></a></span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3886"><span class=cF4>MESSAGE_KEY_UP</span></a><span class=cF2> of non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2> key and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2> if key.</span><span class=cF0>
<a name="l131"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l42"><span class=cF4>MessageScan</span></a><span class=cF2>() throws away other message types.</span><span class=cF0>
<a name="l132"></a> </span><span class=cF9>I64</span><span class=cF0> arg1a, arg2a, arg1b, arg2b;
<a name="l133"></a>
@ -162,14 +162,14 @@ body {background-color:#fef1f0;}
<a name="l135"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>;
<a name="l136"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l137"></a> </span><span class=cF1>do</span><span class=cF0> </span><span class=cF5>MessageGet</span><span class=cF0>(&amp;arg1b, &amp;arg2b, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>MESSAGE_KEY_UP</span><span class=cF0>);
<a name="l138"></a> </span><span class=cF1>while</span><span class=cF0> (!arg1b); </span><span class=cF2>//Be careful of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4205"><span class=cF4>SC_SHIFT</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4206"><span class=cF4>SC_CTRL</span></a><span class=cF2>, etc.</span><span class=cF0>
<a name="l138"></a> </span><span class=cF1>while</span><span class=cF0> (!arg1b); </span><span class=cF2>//Be careful of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4208"><span class=cF4>SC_SHIFT</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4209"><span class=cF4>SC_CTRL</span></a><span class=cF2>, etc.</span><span class=cF0>
<a name="l139"></a>
<a name="l140"></a> </span><span class=cF1>return</span><span class=cF0> arg1a;
<a name="l141"></a>}
<a name="l142"></a>
<a name="l143"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>KeyScan</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_ch=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> *_scan_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> echo=</span><span class=cF3>FALSE</span><span class=cF0>)
<a name="l144"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns FALSE immediately if no key.</span><span class=cF0>
<a name="l145"></a></span><span class=cF2>//Sets </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l144"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3885"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns FALSE immediately if no key.</span><span class=cF0>
<a name="l145"></a></span><span class=cF2>//Sets </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l146"></a> </span><span class=cF2>//Removes key message and returns TRUE.</span><span class=cF0>
<a name="l147"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l42"><span class=cF4>MessageScan</span></a><span class=cF2>() throws away other message types.</span><span class=cF0>
<a name="l148"></a> </span><span class=cF9>I64</span><span class=cF0> ch = </span><span class=cFE>0</span><span class=cF0>, sc = </span><span class=cFE>0</span><span class=cF0>;
@ -195,7 +195,7 @@ body {background-color:#fef1f0;}
<a name="l168"></a>}
<a name="l169"></a>
<a name="l170"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>KeyGet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_scan_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> echo=</span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> raw_cursor=</span><span class=cF3>FALSE</span><span class=cF0>)
<a name="l171"></a>{</span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> message and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2>.</span><span class=cF0>
<a name="l171"></a>{</span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3885"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> message and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2>.</span><span class=cF0>
<a name="l172"></a></span><span class=cF2>//Sets </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l173"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l143"><span class=cF4>KeyScan</span></a><span class=cF2>() throws away other message types.</span><span class=cF0>
<a name="l174"></a> </span><span class=cF9>I64</span><span class=cF0> ch, sc;
@ -245,7 +245,7 @@ body {background-color:#fef1f0;}
<a name="l218"></a>}
<a name="l219"></a>
<a name="l220"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CharGet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *_scan_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> echo=</span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF1>Bool</span><span class=cF0> raw_cursor=</span><span class=cF3>FALSE</span><span class=cF0>)
<a name="l221"></a>{</span><span class=cF2>//Waits for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
<a name="l221"></a>{</span><span class=cF2>//Waits for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
<a name="l222"></a></span><span class=cF2>//Sets </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF2>.</span><span class=cF0>
<a name="l223"></a> </span><span class=cF9>I64</span><span class=cF0> ch1;
<a name="l224"></a>
@ -263,7 +263,7 @@ body {background-color:#fef1f0;}
<a name="l236"></a>}
<a name="l237"></a>
<a name="l238"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *message=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF1>default</span><span class=cF0>=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cF3>NONE</span><span class=cF0>)
<a name="l239"></a>{</span><span class=cF2>//Returns a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF2>()ed prompted string. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4366"><span class=cF4>Flags</span></a><span class=cF2>.</span><span class=cF0>
<a name="l239"></a>{</span><span class=cF2>//Returns a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF2>()ed prompted string. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4369"><span class=cF4>Flags</span></a><span class=cF2>.</span><span class=cF0>
<a name="l240"></a> </span><span class=cF1>U8</span><span class=cF0> *st;
<a name="l241"></a>
<a name="l242"></a> </span><span class=cF1>if</span><span class=cF0> (message)

View file

@ -553,7 +553,7 @@ body {background-color:#fef1f0;}
<a name="l526"></a>}
<a name="l527"></a>
<a name="l528"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>StrUtil</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *_src, </span><span class=cF9>I64</span><span class=cF0> flags)
<a name="l529"></a>{</span><span class=cF2>//Modifies in place. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4374"><span class=cF4>flags</span></a><span class=cF2> for all the options.</span><span class=cF0>
<a name="l529"></a>{</span><span class=cF2>//Modifies in place. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4377"><span class=cF4>flags</span></a><span class=cF2> for all the options.</span><span class=cF0>
<a name="l530"></a> </span><span class=cF1>U8</span><span class=cF0> *src = _src, *dst = _src;
<a name="l531"></a> </span><span class=cF9>I64</span><span class=cF0> ch;
<a name="l532"></a>

View file

@ -152,7 +152,7 @@ body {background-color:#fef1f0;}
<a name="l125"></a>}
<a name="l126"></a>
<a name="l127"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>PressAKey</span><span class=cF0>()
<a name="l128"></a>{</span><span class=cF2>//Print &quot;Press a key&quot; and wait for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
<a name="l128"></a>{</span><span class=cF2>//Print &quot;Press a key&quot; and wait for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4134"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
<a name="l129"></a> </span><span class=cF6>&quot;$BK,1$PRESS A KEY$BK,0$\n&quot;</span><span class=cF0>;
<a name="l130"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF5>CharGet</span><span class=cF0>(, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l131"></a>}

View file

@ -26,7 +26,7 @@ body {background-color:#fef1f0;}
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF1>public</span><span class=cF0> </span><span class=cF9>CCtrl</span><span class=cF0> *</span><span class=cF5>CtrlFindUnique</span><span class=cF0>(</span><span class=cF9>CTask</span><span class=cF0> *haystack_task, </span><span class=cF9>I64</span><span class=cF0> needle_type)
<a name="l2"></a>{</span><span class=cF2>//Find task ctrl given </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3747"><span class=cF4>ctrl_type</span></a><span class=cF2>.</span><span class=cF0>
<a name="l2"></a>{</span><span class=cF2>//Find task ctrl given </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3750"><span class=cF4>ctrl_type</span></a><span class=cF2>.</span><span class=cF0>
<a name="l3"></a> </span><span class=cF9>CCtrl</span><span class=cF0> *c;
<a name="l4"></a>
<a name="l5"></a> c = haystack_task-&gt;next_ctrl;

View file

@ -143,7 +143,7 @@ body {background-color:#fef1f0;}
<a name="l116"></a>}
<a name="l117"></a>
<a name="l118"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>DocGetStr2</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> flags=</span><span class=cFE>0</span><span class=cF0>)
<a name="l119"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4366"><span class=cF4>Flags</span></a><span class=cF0>
<a name="l119"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4369"><span class=cF4>Flags</span></a><span class=cF0>
<a name="l120"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc;
<a name="l121"></a> </span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e, *doc_e_end;
<a name="l122"></a> </span><span class=cF1>U8</span><span class=cF0> *st, *st2, *res;

View file

@ -172,7 +172,7 @@ body {background-color:#fef1f0;}
<a name="l145"></a>}
<a name="l146"></a>
<a name="l147"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>DCReset</span><span class=cF0>(</span><span class=cF9>CDC</span><span class=cF0> *dc)
<a name="l148"></a>{</span><span class=cF2>//Reset </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF2> structure members but not image body, itself.</span><span class=cF0>
<a name="l148"></a>{</span><span class=cF2>//Reset </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4302"><span class=cF4>CDC</span></a><span class=cF2> structure members but not image body, itself.</span><span class=cF0>
<a name="l149"></a> dc-&gt;color = </span><span class=cF3>BLACK</span><span class=cF0>;
<a name="l150"></a> dc-&gt;color2 = </span><span class=cF3>BLACK</span><span class=cF0>;
<a name="l151"></a> dc-&gt;bkcolor = </span><span class=cF3>BLACK</span><span class=cF0>;

View file

@ -256,7 +256,7 @@ body {background-color:#fef1f0;}
<a name="l229"></a> </span><span class=cF6>&quot;Kernel\t:%08X-%08X\n&quot;</span><span class=cF0>, </span><span class=cFB>mem_boot_base</span><span class=cF0> - </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CBinFile</span><span class=cF0>), bfh;
<a name="l230"></a>
<a name="l231"></a> </span><span class=cF6>&quot;$ID,-2$$BLACK$High Memory\t:00100000-%08X$FG$\n&quot;</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
<a name="l232"></a> </span><span class=cF6>&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4120"><span class=cF4>SYS_FIXED_AREA</span></a><span class=cF6>\t:%08X-%08X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0> + </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CSysFixedArea</span><span class=cF0>) - </span><span class=cFE>1</span><span class=cF0>;
<a name="l232"></a> </span><span class=cF6>&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4123"><span class=cF4>SYS_FIXED_AREA</span></a><span class=cF6>\t:%08X-%08X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0> + </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CSysFixedArea</span><span class=cF0>) - </span><span class=cFE>1</span><span class=cF0>;
<a name="l233"></a>
<a name="l234"></a> </span><span class=cF6>&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l532"><span class=cF4>VBE framebuffer</span></a><span class=cF6>\t:%08X-%08X\n&quot;</span><span class=cF0>, </span><span class=cFB>text</span><span class=cF0>.fb_alias, </span><span class=cFB>text</span><span class=cF0>.fb_alias(</span><span class=cF1>U8</span><span class=cF0> *) + </span><span class=cFB>text</span><span class=cF0>.buffer_size - </span><span class=cFE>1</span><span class=cF0>;
<a name="l235"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFB>sys_data_bp</span><span class=cF0>)

View file

@ -209,7 +209,7 @@ body {background-color:#fef1f0;}
<a name="l182"></a>
<a name="l183"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SUFile</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *filename,</span><span class=cF9>I64</span><span class=cF0> suf_flags,</span><span class=cF1>F64</span><span class=cF0> indent_scale_factor)
<a name="l184"></a>{</span><span class=cF2>//String utility on a single file</span><span class=cF0>
<a name="l185"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4375"><span class=cF4>SU Flags</span></a><span class=cF0>
<a name="l185"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4378"><span class=cF4>SU Flags</span></a><span class=cF0>
<a name="l186"></a> </span><span class=cF1>U8</span><span class=cF0> *dst;
<a name="l187"></a> </span><span class=cF1>Bool</span><span class=cF0> chged = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l188"></a> </span><span class=cF9>I64</span><span class=cF0> reduced = </span><span class=cFE>0</span><span class=cF0>;
@ -244,7 +244,7 @@ body {background-color:#fef1f0;}
<a name="l217"></a>{</span><span class=cF2>//Apply </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/StrA.CC.html#l528"><span class=cF4>StrUtil</span></a><span class=cF2>() on files.</span><span class=cF0>
<a name="l218"></a></span><span class=cF2>//You can convert spaces to tabs, for example,</span><span class=cF0>
<a name="l219"></a> </span><span class=cF2>//or removing trailing spaces on lines.</span><span class=cF0>
<a name="l220"></a> </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4375"><span class=cF4>SUF Flags</span></a><span class=cF2>.</span><span class=cF0>
<a name="l220"></a> </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4378"><span class=cF4>SUF Flags</span></a><span class=cF2>.</span><span class=cF0>
<a name="l221"></a> </span><span class=cF9>I64</span><span class=cF0> fuf_flags = </span><span class=cFE>0</span><span class=cF0>;
<a name="l222"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> *tmpde, *tmpde1;
<a name="l223"></a>

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,7 @@
$WW,1$$FG,5$$TX+CX,"ChangeLog"$$FG$
$IV,1$----08/23/21 02:28:07----$IV,0$
* Added recognition of Linux swap and ext2/3/4 filesystem type in $LK+PU,"BlkDevAdd",A="FF:::/Kernel/BlkDev/DiskAddDev.CC,LINUX"$, added $LK+PU,"MBR_PT_LINUX",A="MN:MBR_PT_LINUX"$ and $LK+PU,"MBR_PT_SWAP",A="MN:MBR_PT_SWAP"$, removed MBR_PT_FAT12, added "LINUX" and "SWAP" to $LK+PU,"ST_DRIVE_TYPES",A="FF:::/Kernel/KDefine.CC,LINUX"$.
$IV,1$----08/17/21 02:42:53----$IV,0$
* Raised version number to 1.00.
* Added progress bars to $LK+PU,"DVDImageRead",A="FF:::/Kernel/BlkDev/DiskCDDVD.CC,progress1"$.

View file

@ -145,6 +145,20 @@ I64 BlkDevAdd(CBlkDev *bd, I64 prt_num=I64_MIN, Bool whole_drive, Bool make_free
drive->fs_type = FSt_NTFS;
break;
case MBR_PT_LINUX:
drive->drive_signature = DRIVE_SIGNATURE_VAL;
drive->prt_num = num;
res++;
drive->fs_type = FSt_LINUX;
break;
case MBR_PT_SWAP:
drive->drive_signature = DRIVE_SIGNATURE_VAL;
drive->prt_num = num;
res++;
drive->fs_type = FSt_SWAP;
break;
case 5:
case 15:
j = i;

View file

@ -223,6 +223,8 @@ U0 SysDefinesLoad()
"FAT32\0"
"ISO9660\0"
"NTFS\0"
"LINUX\0"
"SWAP\0"
"UNKNOWN\0");
DefineListLoad("ST_COLORS",

View file

@ -3348,13 +3348,14 @@ public class CBlkDev
#define FSt_FAT32 2 //Supported except for short names, to some degree
#define FSt_ISO9660 3 //Not Supported
#define FSt_NTFS 4 //Not Supported
#define FSt_UNKNOWN 5
#define FSt_TYPES_NUM 6
#define FSt_LINUX 5 //Not Supported
#define FSt_SWAP 6 //Not Supported
#define FSt_UNKNOWN 7
#define FSt_TYPES_NUM 8
#define FSG_TYPE_MASK 0x7FFF
//File system type flags
#define FStf_DISABLE 15
#define MBR_PT_FAT12 0x01
#define MBR_PT_FAT32a 0x0B
#define MBR_PT_FAT32b 0x0C
#define MBR_PT_FAT32c 0x1B
@ -3363,6 +3364,8 @@ public class CBlkDev
#define MBR_PT_FAT32f 0x8C
#define MBR_PT_NTFS 0x07
#define MBR_PT_REDSEA 0x88
#define MBR_PT_LINUX 0x83
#define MBR_PT_SWAP 0x82
class CFreeList
{

View file

@ -15,7 +15,7 @@ U0 LoadDocDefines()
//$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/System/Boot/BootDVD.CC,DD_BOOT_HIGH_LOC_DVD"$
$TR,"LineRep"$
$ID,2$DefinePrint("DD_ZEALOS_LOC","94,703");
$ID,2$DefinePrint("DD_ZEALOS_LOC","94,722");
$ID,-2$
DefinePrint("DD_MP_VECT", "%08X", MP_VECT_ADDR);
DefinePrint("DD_MP_VECT_END", "%08X", MP_VECT_ADDR + COREAP_16BIT_INIT_END - COREAP_16BIT_INIT - 1);