Fix spacing in Ui, DriveRep, MemBIOSRep.

Fix PCIRep graphics hang on bare-metal.
Fix XTalk buffer formatting in StartUpTasks, PopUpFile, PopUpRunFile, and EdCodeTools2.
Add CBGR32 to Kernel headers.
This commit is contained in:
TomAwezome 2021-09-26 01:15:46 -04:00
parent 1d8b9d2a59
commit 9139a360f6
70 changed files with 3476 additions and 3461 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#l3774"><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#l3778"><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

@ -770,65 +770,68 @@ body {background-color:#fef1f0;}
<a name="l743"></a> rip++;
<a name="l744"></a>
<a name="l745"></a> </span><span class=cF1>if</span><span class=cF0> (*arg1_st)
<a name="l746"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;\t%s&quot;</span><span class=cF0>, arg1_st);
<a name="l747"></a> </span><span class=cF1>if</span><span class=cF0> (*arg2_st)
<a name="l748"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;, %s&quot;</span><span class=cF0>, arg2_st);
<a name="l749"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;\n&quot;</span><span class=cF0>);
<a name="l750"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line2, </span><span class=cF6>&quot;\n&quot;</span><span class=cF0>);
<a name="l751"></a> </span><span class=cF1>if</span><span class=cF0> (!just_ins)
<a name="l752"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l753"></a> </span><span class=cF1>for</span><span class=cF0> (i = rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0>; i &lt; </span><span class=cFE>6</span><span class=cF0>; i++)
<a name="l754"></a> {
<a name="l755"></a> bin_data_area1[i &lt;&lt; </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l756"></a> bin_data_area1[i &lt;&lt; </span><span class=cFE>1</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l757"></a> }
<a name="l758"></a> </span><span class=cF1>for</span><span class=cF0> (i = rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0>; i &lt; </span><span class=cFE>12</span><span class=cF0>; i++)
<a name="l759"></a> {
<a name="l760"></a> bin_data_area2[(i - </span><span class=cFE>6</span><span class=cF0>) &lt;&lt; </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l761"></a> bin_data_area2[(i - </span><span class=cFE>6</span><span class=cF0>) &lt;&lt; </span><span class=cFE>1</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l762"></a> }
<a name="l763"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l764"></a> </span><span class=cF5>StrCopy</span><span class=cF0>(buf, line1);
<a name="l765"></a> </span><span class=cF1>if</span><span class=cF0> (!just_ins &amp;&amp; rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0> &gt; </span><span class=cFE>6</span><span class=cF0>)
<a name="l766"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, line2);
<a name="l767"></a> *_rip = rip;
<a name="l768"></a>}
<a name="l769"></a>
<a name="l770"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>U</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *rip, </span><span class=cF9>I64</span><span class=cF0> count=</span><span class=cFE>20</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> seg_size=</span><span class=cFE>64</span><span class=cF0>)
<a name="l771"></a>{</span><span class=cF2>//Unassembles a num of insts.</span><span class=cF0>
<a name="l772"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l773"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cFE>1024</span><span class=cF0>];
<a name="l774"></a>
<a name="l775"></a> </span><span class=cF1>if</span><span class=cF0> (seg_size == </span><span class=cFE>16</span><span class=cF0>)
<a name="l776"></a> </span><span class=cF5>PrintWarn</span><span class=cF0>(</span><span class=cF6>&quot;16-bit unassembly is not well supported.\n&quot;</span><span class=cF0>);
<a name="l777"></a> </span><span class=cF6>&quot;$HL,1$\n&quot;</span><span class=cF0>;
<a name="l778"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; count; i++)
<a name="l779"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l780"></a> </span><span class=cF5>Ui</span><span class=cF0>(buf, &amp;rip, seg_size);
<a name="l781"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, buf;
<a name="l782"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l783"></a> </span><span class=cF6>&quot;$HL,0$\n&quot;</span><span class=cF0>;
<a name="l784"></a>
<a name="l785"></a> </span><span class=cF1>return</span><span class=cF0> rip;
<a name="l786"></a>}
<a name="l746"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l747"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;%h*c&quot;</span><span class=cF0>, </span><span class=cFE>6</span><span class=cF0> - </span><span class=cF5>StrLen</span><span class=cF7>(</span><span class=cF0>tmpo-&gt;str</span><span class=cF7>)</span><span class=cF0>, </span><span class=cF6>' '</span><span class=cF0>);
<a name="l748"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, arg1_st);
<a name="l749"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l750"></a> </span><span class=cF1>if</span><span class=cF0> (*arg2_st)
<a name="l751"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;, %s&quot;</span><span class=cF0>, arg2_st);
<a name="l752"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line1, </span><span class=cF6>&quot;\n&quot;</span><span class=cF0>);
<a name="l753"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(line2, </span><span class=cF6>&quot;\n&quot;</span><span class=cF0>);
<a name="l754"></a> </span><span class=cF1>if</span><span class=cF0> (!just_ins)
<a name="l755"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l756"></a> </span><span class=cF1>for</span><span class=cF0> (i = rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0>; i &lt; </span><span class=cFE>6</span><span class=cF0>; i++)
<a name="l757"></a> {
<a name="l758"></a> bin_data_area1[i &lt;&lt; </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l759"></a> bin_data_area1[i &lt;&lt; </span><span class=cFE>1</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l760"></a> }
<a name="l761"></a> </span><span class=cF1>for</span><span class=cF0> (i = rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0>; i &lt; </span><span class=cFE>12</span><span class=cF0>; i++)
<a name="l762"></a> {
<a name="l763"></a> bin_data_area2[(i - </span><span class=cFE>6</span><span class=cF0>) &lt;&lt; </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l764"></a> bin_data_area2[(i - </span><span class=cFE>6</span><span class=cF0>) &lt;&lt; </span><span class=cFE>1</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF3>CH_SPACE</span><span class=cF0>;
<a name="l765"></a> }
<a name="l766"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l767"></a> </span><span class=cF5>StrCopy</span><span class=cF0>(buf, line1);
<a name="l768"></a> </span><span class=cF1>if</span><span class=cF0> (!just_ins &amp;&amp; rip - </span><span class=cF7>(</span><span class=cF0>*_rip</span><span class=cF7>)(</span><span class=cF9>I64</span><span class=cF7>)</span><span class=cF0> &gt; </span><span class=cFE>6</span><span class=cF0>)
<a name="l769"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, line2);
<a name="l770"></a> *_rip = rip;
<a name="l771"></a>}
<a name="l772"></a>
<a name="l773"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>U</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *rip, </span><span class=cF9>I64</span><span class=cF0> count=</span><span class=cFE>20</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> seg_size=</span><span class=cFE>64</span><span class=cF0>)
<a name="l774"></a>{</span><span class=cF2>//Unassembles a num of insts.</span><span class=cF0>
<a name="l775"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l776"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cFE>1024</span><span class=cF0>];
<a name="l777"></a>
<a name="l778"></a> </span><span class=cF1>if</span><span class=cF0> (seg_size == </span><span class=cFE>16</span><span class=cF0>)
<a name="l779"></a> </span><span class=cF5>PrintWarn</span><span class=cF0>(</span><span class=cF6>&quot;16-bit unassembly is not well supported.\n&quot;</span><span class=cF0>);
<a name="l780"></a> </span><span class=cF6>&quot;$HL,1$\n&quot;</span><span class=cF0>;
<a name="l781"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; count; i++)
<a name="l782"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l783"></a> </span><span class=cF5>Ui</span><span class=cF0>(buf, &amp;rip, seg_size);
<a name="l784"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, buf;
<a name="l785"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l786"></a> </span><span class=cF6>&quot;$HL,0$\n&quot;</span><span class=cF0>;
<a name="l787"></a>
<a name="l788"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Un</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *rip, </span><span class=cF9>I64</span><span class=cF0> count=</span><span class=cFE>0x80</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> seg_size=</span><span class=cFE>64</span><span class=cF0>)
<a name="l789"></a>{</span><span class=cF2>//Unassembles a num of bytes</span><span class=cF0>
<a name="l790"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l791"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cFE>1024</span><span class=cF0>], *end_rip = rip(</span><span class=cF9>I64</span><span class=cF0>) + count;
<a name="l792"></a>
<a name="l793"></a> </span><span class=cF1>if</span><span class=cF0> (seg_size == </span><span class=cFE>16</span><span class=cF0>)
<a name="l794"></a> </span><span class=cF5>PrintWarn</span><span class=cF0>(</span><span class=cF6>&quot;16-bit unassembly is not well supported.\n&quot;</span><span class=cF0>);
<a name="l795"></a> </span><span class=cF6>&quot;$HL,1$\n&quot;</span><span class=cF0>;
<a name="l796"></a> </span><span class=cF1>while</span><span class=cF0> (rip &lt; end_rip)
<a name="l797"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l798"></a> </span><span class=cF5>Ui</span><span class=cF0>(buf, &amp;rip, seg_size);
<a name="l799"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, buf;
<a name="l800"></a> i++;
<a name="l801"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l802"></a> </span><span class=cF6>&quot;$HL,0$\n&quot;</span><span class=cF0>;
<a name="l803"></a>
<a name="l804"></a> </span><span class=cF1>return</span><span class=cF0> i;
<a name="l805"></a>}
<a name="l788"></a> </span><span class=cF1>return</span><span class=cF0> rip;
<a name="l789"></a>}
<a name="l790"></a>
<a name="l791"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Un</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *rip, </span><span class=cF9>I64</span><span class=cF0> count=</span><span class=cFE>0x80</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> seg_size=</span><span class=cFE>64</span><span class=cF0>)
<a name="l792"></a>{</span><span class=cF2>//Unassembles a num of bytes</span><span class=cF0>
<a name="l793"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cFE>0</span><span class=cF0>;
<a name="l794"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cFE>1024</span><span class=cF0>], *end_rip = rip(</span><span class=cF9>I64</span><span class=cF0>) + count;
<a name="l795"></a>
<a name="l796"></a> </span><span class=cF1>if</span><span class=cF0> (seg_size == </span><span class=cFE>16</span><span class=cF0>)
<a name="l797"></a> </span><span class=cF5>PrintWarn</span><span class=cF0>(</span><span class=cF6>&quot;16-bit unassembly is not well supported.\n&quot;</span><span class=cF0>);
<a name="l798"></a> </span><span class=cF6>&quot;$HL,1$\n&quot;</span><span class=cF0>;
<a name="l799"></a> </span><span class=cF1>while</span><span class=cF0> (rip &lt; end_rip)
<a name="l800"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l801"></a> </span><span class=cF5>Ui</span><span class=cF0>(buf, &amp;rip, seg_size);
<a name="l802"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, buf;
<a name="l803"></a> i++;
<a name="l804"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l805"></a> </span><span class=cF6>&quot;$HL,0$\n&quot;</span><span class=cF0>;
<a name="l806"></a>
<a name="l807"></a> </span><span class=cF1>return</span><span class=cF0> i;
<a name="l808"></a>}
</span></pre></body>
</html>

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;\n94,710 LOC, &quot;</span><span class=cF0>;
<a name="l12"></a> </span><span class=cF6>&quot;\n94,718 LOC, &quot;</span><span class=cF0>;
<a name="l13"></a> </span><span class=cF6>&quot;%d MB RAM, &quot;</span><span class=cF0>, </span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l14"></a> </span><span class=cF5>CPURep</span><span class=cF0>;
<a name="l15"></a> </span><span class=cF6>&quot;\n&quot;</span><span class=cF0>;

View file

@ -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#l3980"><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#l3984"><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.
@ -260,7 +260,7 @@ body {background-color:#fef1f0;}
<a name="l233"></a>
<a name="l234"></a>* Compiler: Prints two error messages for expressions in statements.
<a name="l235"></a>
<a name="l236"></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>() negative byte displacement, neg 32-bit disp.
<a name="l236"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l773"><span class=cF4>U</span></a><span class=cF0>() negative byte displacement, neg 32-bit disp.
<a name="l237"></a>
<a name="l238"></a>* Race condition in </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/FlatTops.CC.html#l1"><span class=cF4>::/Demo/Games/FlatTops.CC</span></a><span class=cF0> torpedo.
<a name="l239"></a>
@ -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#l3884"><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#l3888"><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,7 +301,7 @@ 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#l4276"><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#l4280"><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#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>
@ -312,7 +312,7 @@ body {background-color:#fef1f0;}
<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#l4302"><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#l4306"><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#l3604"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
<a name="l291"></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#l3774"><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#l3778"><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#l3980"><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#l3984"><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()

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=cF2>//Shows the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l203"><span class=cF4>Carry</span></a><span class=cF2> function. It holds the CPU carry flag.</span><span class=cF0>
<a name="l2"></a></span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF2>() Unassemble to make sure it is right.</span><span class=cF0>
<a name="l2"></a></span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l773"><span class=cF4>U</span></a><span class=cF2>() Unassemble to make sure it is right.</span><span class=cF0>
<a name="l3"></a>
<a name="l4"></a></span><span class=cF1>U0</span><span class=cF0> BigCount()
<a name="l5"></a>{

View file

@ -36,7 +36,7 @@ body {background-color:#fef1f0;}
<a name="l9"></a>
<a name="l10"></a></span><span class=cF2>Press &lt;CTRL-ALT-d&gt; to enter Debug.</span><span class=cF0>
<a name="l11"></a></span><span class=cF2>&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Debug.CC.html#l330"><span class=cF4>Uf</span></a><span class=cF2>(&quot;DebugDemo&quot;);</span><span class=cF0>
<a name="l12"></a></span><span class=cF2>&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF2>(_RIP);</span><span class=cF0>
<a name="l12"></a></span><span class=cF2>&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l773"><span class=cF4>U</span></a><span class=cF2>(_RIP);</span><span class=cF0>
<a name="l13"></a>
<a name="l14"></a></span><span class=cF2>See </span><span class=cF4><u>Debugging</span><span class=cF0>
<a name="l15"></a></u></span><span class=cF2>*/</span><span class=cF0>

View file

@ -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#l4302"><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#l4306"><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#l3980"><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#l3984"><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#l3729"><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#l3733"><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#l3980"><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#l3984"><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#l3774"><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#l3778"><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#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="l21"></a></span><span class=cF2>device context </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4306"><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#l3980"><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#l3984"><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#l3671"><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#l3675"><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#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="l29"></a> </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3675"><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#l4226"><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#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="l4"></a> </span><span class=cF6>&quot;Use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3888"><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#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>
<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#l4138"><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

@ -31,7 +31,7 @@ body {background-color:#fef1f0;}
<a name="l4"></a></span><span class=cF2>read-modify-write statements.</span><span class=cF0>
<a name="l5"></a></span><span class=cF2>It will generate invalid insts</span><span class=cF0>
<a name="l6"></a></span><span class=cF2>if you misuse it and it will crash.</span><span class=cF4>
<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=cF2>() to see what code was generated.</span><span class=cF0>
<a name="l7"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l773"><span class=cF4>U</span></a><span class=cF2>() to see what code was generated.</span><span class=cF0>
<a name="l8"></a></span><span class=cF2>*/</span><span class=cF0>
<a name="l9"></a>
<a name="l10"></a>#</span><span class=cF1>define</span><span class=cF0> COUNT </span><span class=cFE>0x1000000</span><span class=cF0>

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#l3884"><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#l3888"><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

@ -80,7 +80,7 @@ body {background-color:#fef1f0;}
<a name="l52"></a>* Fixed OSUpgrade not asking to update the master boot record.
<a name="l53"></a>* Changed ordering of some links in the PersonalMenu.
<a name="l54"></a>* Increased Raw mode screen scrolling from 1 line to 8 lines to improve bare-metal performance.
<a name="l55"></a>* Fixed Raw mode $ printing in </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l237"><span class=cF4>MemBIOSRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/TaskRep.CC.html#l23"><span class=cF4>TaskRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l205"><span class=cF4>PCIRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/VideoRep.CC.html#l1"><span class=cF4>VideoRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l333"><span class=cF4>MemPageRep</span></a><span class=cF0>.
<a name="l55"></a>* Fixed Raw mode $ printing in </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l238"><span class=cF4>MemBIOSRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/TaskRep.CC.html#l23"><span class=cF4>TaskRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l206"><span class=cF4>PCIRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/VideoRep.CC.html#l1"><span class=cF4>VideoRep</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l334"><span class=cF4>MemPageRep</span></a><span class=cF0>.
<a name="l56"></a>
<a name="l57"></a></span><span class=c0F>----08/04/21 14:29:24----</span><span class=cF0>
<a name="l58"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l392"><span class=cF4>DriveRep</span></a><span class=cF0> to report AHCI SATA port number where IDE base0, base1, and unit were displayed.
@ -338,7 +338,7 @@ body {background-color:#fef1f0;}
<a name="l310"></a>
<a name="l311"></a></span><span class=c0F>----03/16/20 14:44:00----</span><span class=cF0>
<a name="l312"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;GetStr&quot;, &quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l238"><span class=cF4>StrGet</span></a><span class=cF0>&quot;);
<a name="l313"></a>* Renamed GSF -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4369"><span class=cF4>SGF</span></a><span class=cF0> as a consequence.
<a name="l313"></a>* Renamed GSF -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4373"><span class=cF4>SGF</span></a><span class=cF0> as a consequence.
<a name="l314"></a>* Added some </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2694"><span class=cF4>AHCI headers</span></a><span class=cF0>.
<a name="l315"></a>
<a name="l316"></a></span><span class=c0F>----03/12/20 22:00:36----</span><span class=cF0>
@ -363,7 +363,7 @@ body {background-color:#fef1f0;}
<a name="l335"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/32BitColor.CC.html#l1"><span class=cF4>::/Demo/Graphics/32BitColor.CC</span></a><span class=cF0>.
<a name="l336"></a>
<a name="l337"></a></span><span class=c0F>----02/22/20 20:04:00----</span><span class=cF0>
<a name="l338"></a>* Reduced </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4119"><span class=cF4>MEM_MIN_MEG</span></a><span class=cF0> to 256 MiB (VMWare users have to do less work).
<a name="l338"></a>* Reduced </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4123"><span class=cF4>MEM_MIN_MEG</span></a><span class=cF0> to 256 MiB (VMWare users have to do less work).
<a name="l339"></a>* Added </span><span class=cF2>&lt;CTRL-ALT-X&gt;</span><span class=cF0> to AC </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/StandBy.DD.html#l1"><span class=cF4>standby</span></a><span class=cF0> doc.
<a name="l340"></a>* Removed the /System/God directory. Bible.TXT has been removed. The functionality of HolySpirit.CC has been moved into
<a name="l341"></a>::/System/Divination.CC. Functions renamed from </span><a href="https://zeal-operating-system.github.io/ZealOS/System/God/HolySpirit.CC.html#l173"><span class=cF4>God*</span></a><span class=cF0>() to Divine*(). Psalmody GodSong feature </span><a href="https://zeal-operating-system.github.io/ZealOS/Apps/Psalmody/PsalmodyMain.CC.html#l675"><span class=cF4>disabled</span></a><span class=cF0>. DolDoc &quot;BF:&quot; links
@ -372,7 +372,7 @@ body {background-color:#fef1f0;}
<a name="l344"></a>
<a name="l345"></a></span><span class=c0F>----02/21/20 17:30:17----</span><span class=cF0>
<a name="l346"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;IRQ's&quot;, &quot;IRQs&quot;);
<a name="l347"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l237"><span class=cF4>MemBIOSRep</span></a><span class=cF0>() to report on VBE Linear Framebuffer size. E820 memory ranges are color-coded. It now shows the total
<a name="l347"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l238"><span class=cF4>MemBIOSRep</span></a><span class=cF0>() to report on VBE Linear Framebuffer size. E820 memory ranges are color-coded. It now shows the total
<a name="l348"></a>memory reported by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l173"><span class=cF4>MemBIOSTotal</span></a><span class=cF0>().
<a name="l349"></a>* Updated AutoComplete shortcuts from old WordStat &lt;ALT(-SHIFT-)-W&gt; to </span><span class=cF2>&lt;ALT(-SHIFT-)-A&gt;</span><span class=cF0> in </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Tips.DD.html#l1"><span class=cF4>::/Doc/Tips.DD</span></a><span class=cF0>.
<a name="l350"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KStart16.CC.html#l234"><span class=cF4>check</span></a><span class=cF0> for invalid results of BIOS function 15:E801. BIOSes either return results in AX/BX or CX/DX. You have to make
@ -387,7 +387,7 @@ body {background-color:#fef1f0;}
<a name="l359"></a></span><span class=c0F>----02/19/20 21:46:17----</span><span class=cF0>
<a name="l360"></a><blink>* Zenith 1.0 released.</blink>
<a name="l361"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrComposites.CC.html#l412"><span class=cF4>GRScreenCaptureWrite</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrComposites.CC.html#l396"><span class=cF4>GRScreenCaptureRead</span></a><span class=cF0>() are broken. </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l362"><span class=cF4>DCLoad</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l318"><span class=cF4>DCSave</span></a><span class=cF0>() use DCF_COMPRESSED. It also saves the
<a name="l362"></a>palette as </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3655"><span class=cF4>CBGR48</span></a><span class=cF0>, which is a problem.
<a name="l362"></a>palette as </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3659"><span class=cF4>CBGR48</span></a><span class=cF0>, which is a problem.
<a name="l363"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/MemRep.CC.html#l219"><span class=cF4>MemRep</span></a><span class=cF0>() to report on VBE variables.
<a name="l364"></a>* Renamed VGAFlush() -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Display.CC.html#l100"><span class=cF4>LFBFlush</span></a><span class=cF0>().
<a name="l365"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Palette.CC.html#l1"><span class=cF4>Palette Demo</span></a><span class=cF0> to use current palette environment.
@ -405,7 +405,7 @@ body {background-color:#fef1f0;}
<a name="l377"></a> Rundown:
<a name="l378"></a> - Added classes </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l503"><span class=cF4>CVBEInfo</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l520"><span class=cF4>CVBEMode</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l539"><span class=cF4>CVBEModeShort</span></a><span class=cF0>
<a name="l379"></a> - </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KStart16.CC.html#l104"><span class=cF4>real-mode assembly</span></a><span class=cF0> -- </span><span class=cF9><u>added kernel symbols</u></span><span class=cF0>.
<a name="l380"></a> - Added </span><span class=cF2>screen_size</span><span class=cF0>, </span><span class=cF2>buffer_size</span><span class=cF0>, </span><span class=cF2>fb_alias</span><span class=cF0> members to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4248"><span class=cF4>CTextGlobals</span></a><span class=cF0>.
<a name="l380"></a> - Added </span><span class=cF2>screen_size</span><span class=cF0>, </span><span class=cF2>buffer_size</span><span class=cF0>, </span><span class=cF2>fb_alias</span><span class=cF0> members to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4252"><span class=cF4>CTextGlobals</span></a><span class=cF0>.
<a name="l381"></a> - </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KMain.CC.html#l107"><span class=cF4>SysGrInit</span></a><span class=cF0>() -- using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KMain.CC.html#l69"><span class=cF4>Seg2Linear</span></a><span class=cF0>() to convert pointers.
<a name="l382"></a> - </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Display.CC.html#l62"><span class=cF4>raw text drawing routine</span></a><span class=cF0> updated. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l499"><span class=cF4>BLACK32, WHITE32</span></a><span class=cF0>.
<a name="l383"></a> - Dynamic definition of </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l50"><span class=cF4>GR_WIDTH and GR_HEIGHT</span></a><span class=cF0>.
@ -414,7 +414,7 @@ body {background-color:#fef1f0;}
<a name="l386"></a>
<a name="l387"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/BinRep.CC.html#l27"><span class=cF4>BinRep</span></a><span class=cF0>() from Sup1 ISO.
<a name="l388"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;sys_pci_busses&quot;, &quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l200"><span class=cF4>sys_pci_buses</span></a><span class=cF0>&quot;);
<a name="l389"></a>* Renamed RWF flags -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4243"><span class=cF4>RAWF</span></a><span class=cF0>.
<a name="l389"></a>* Renamed RWF flags -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4247"><span class=cF4>RAWF</span></a><span class=cF0>.
<a name="l390"></a>* Renamed mon_start_days1 and mon_start_days2 -&gt; </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDate.CC.html#l3"><span class=cF4>month_start_days</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDate.CC.html#l4"><span class=cF4>month_start_days_leap</span></a><span class=cF0>, respectively.
<a name="l391"></a>* Moved random number generation algorithm into </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KMathB.CC.html#l83"><span class=cF4>seperate function</span></a><span class=cF0> to reduce line count. Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KMathB.CC.html#l95"><span class=cF4>RandU8</span></a><span class=cF0>().
<a name="l392"></a>* Added syntax highlighting for numbers. </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocHighlight.CC.html#l104"><span class=cF4>DocHighlight</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1290"><span class=cF4>DOC_COLOR_NUMBER</span></a><span class=cF0>.
@ -422,7 +422,7 @@ body {background-color:#fef1f0;}
<a name="l394"></a>microarchitecture.
<a name="l395"></a>* Added untested </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l457"><span class=cF4>ReAlloc</span></a><span class=cF0>(), as it could be useful for certain programs.
<a name="l396"></a>* Added definitions for the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2627"><span class=cF4>PCI registers</span></a><span class=cF0>. Expanded the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2666"><span class=cF4>CPCIDev</span></a><span class=cF0> class to contain the values of the read-only registers. Added </span><span class=cF4>
<a name="l397"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l185"><span class=cF4>PCIDevFind</span></a><span class=cF0>() as a simpler/abstracted alternative to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/PCI.CC.html#l93"><span class=cF4>PCIClassFind</span></a><span class=cF0>().
<a name="l397"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l186"><span class=cF4>PCIDevFind</span></a><span class=cF0>() as a simpler/abstracted alternative to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/PCI.CC.html#l93"><span class=cF4>PCIClassFind</span></a><span class=cF0>().
<a name="l398"></a>* Removed the unpolished HPET implementation from the kernel.
<a name="l399"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KStart64.CC.html#l7"><span class=cF4>Enabled the execution of SSE instructions</span></a><span class=cF0>. No actual SSE implementation in assembler yet, however.
<a name="l400"></a>* Added definitions for the </span><span class=cF9><u>various flags</u></span><span class=cF0> in the Control Registers.
@ -458,7 +458,7 @@ body {background-color:#fef1f0;}
<a name="l430"></a>* Disabled blinking MENU.
<a name="l431"></a>* Disabled scrolling title in editor.
<a name="l432"></a>* One User terminal on startup.
<a name="l433"></a>* Swapped colors in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4166"><span class=cF4>ST_ERR_ST</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4167"><span class=cF4>ST_WARN_ST</span></a><span class=cF0>. RED is for errors, LTRED is for warnings.
<a name="l433"></a>* Swapped colors in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4170"><span class=cF4>ST_ERR_ST</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4171"><span class=cF4>ST_WARN_ST</span></a><span class=cF0>. RED is for errors, LTRED is for warnings.
<a name="l434"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/CPURep.CC.html#l28"><span class=cF4>CPURep</span></a><span class=cF0>() now shows extended processor name or vendor string as fallback.
<a name="l435"></a>* Added #</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l24"><span class=cF4>NONE</span></a><span class=cF0> define to replace 0 or NULL in default function arguments where applicable (usually flags).
<a name="l436"></a>* Shift+Alt+Delete runs </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Boot/BootRAM.CC.html#l33"><span class=cF4>BootRAM</span></a><span class=cF0>().
@ -678,7 +678,7 @@ body {background-color:#fef1f0;}
<a name="l650"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;SYS_SEMA_...&quot;,&quot;SEMA_...&quot;);
<a name="l651"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;SYSf_CTRL_ALT_...&quot;,&quot;CTRL_ALT_...&quot;);
<a name="l652"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;ThrowBreak()&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KExcept.CC.html#l121"><span class=cF4>Break</span></a><span class=cF0>()&quot;);
<a name="l653"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l333"><span class=cF4>MemPageRep</span></a><span class=cF0>().
<a name="l653"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l334"><span class=cF4>MemPageRep</span></a><span class=cF0>().
<a name="l654"></a>
<a name="l655"></a></span><span class=c0F>----12/30/16 23:42:20----</span><span class=cF0>
<a name="l656"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;Pages512&quot;,&quot;Pags&quot;);
@ -692,8 +692,8 @@ body {background-color:#fef1f0;}
<a name="l664"></a>Sup1/Sup1Utils/CvtSong500.HC.
<a name="l665"></a>
<a name="l666"></a></span><span class=c0F>----12/22/16 16:18:32----</span><span class=cF0>
<a name="l667"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;CSrvCmd&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3856"><span class=cF4>CJob</span></a><span class=cF0>&quot;);
<a name="l668"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;CSrvCtrl&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3874"><span class=cF4>CJobCtrl</span></a><span class=cF0>&quot;);
<a name="l667"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;CSrvCmd&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3860"><span class=cF4>CJob</span></a><span class=cF0>&quot;);
<a name="l668"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;CSrvCtrl&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3878"><span class=cF4>CJobCtrl</span></a><span class=cF0>&quot;);
<a name="l669"></a>
<a name="l670"></a></span><span class=c0F>----12/03/16 13:19:58----</span><span class=cF0>
<a name="l671"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;SpriteMat3B()&quot;,&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l294"><span class=cF4>Sprite3Mat4x4B</span></a><span class=cF0>()&quot;);
@ -704,7 +704,7 @@ body {background-color:#fef1f0;}
<a name="l676"></a>
<a name="l677"></a></span><span class=c0F>----12/03/16 10:16:26----</span><span class=cF0>
<a name="l678"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2173"><span class=cF4>__CMD_LINE__</span></a><span class=cF0>.
<a name="l679"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4506"><span class=cF4>CProgress</span></a><span class=cF0>.tf.
<a name="l679"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4510"><span class=cF4>CProgress</span></a><span class=cF0>.tf.
<a name="l680"></a>* Added </span><span class=cF4><u>sys_staff_mode_flag</u></span><span class=cF0>.
<a name="l681"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;except_caller&quot;,&quot;except_callers&quot;);
<a name="l682"></a>
@ -735,7 +735,7 @@ body {background-color:#fef1f0;}
<a name="l707"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/RadixSort.CC.html#l1"><span class=cF4>::/Demo/RadixSort.CC</span></a><span class=cF0>.
<a name="l708"></a>
<a name="l709"></a></span><span class=c0F>----10/26/16 00:21:06----</span><span class=cF0>
<a name="l710"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4506"><span class=cF4>CProgress</span></a><span class=cF0>.t0.
<a name="l710"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4510"><span class=cF4>CProgress</span></a><span class=cF0>.t0.
<a name="l711"></a>* Improved </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Boot.DD.html#l1"><span class=cF4>::/Doc/Boot.DD</span></a><span class=cF0>.
<a name="l712"></a>
<a name="l713"></a></span><span class=c0F>----10/25/16 18:02:44----</span><span class=cF0>
@ -755,7 +755,7 @@ body {background-color:#fef1f0;}
<a name="l727"></a>
<a name="l728"></a></span><span class=c0F>----09/29/16 10:13:14----</span><span class=cF0>
<a name="l729"></a>* <blink>TempleOS version 4.12 Released</blink>
<a name="l730"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3942"><span class=cF4>TASKf_CMD_LINE_PMT</span></a><span class=cF0>.
<a name="l730"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3946"><span class=cF4>TASKf_CMD_LINE_PMT</span></a><span class=cF0>.
<a name="l731"></a>* Improved </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l270"><span class=cF4>TaskWait</span></a><span class=cF0>().
<a name="l732"></a>* Improved </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l39"><span class=cF4>DeathWait</span></a><span class=cF0>().
<a name="l733"></a>

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#l4134"><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#l4138"><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#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="l15"></a>upper 3 bytes. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4192"><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#l4226"><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#l4171"><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#l4175"><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#l4171"><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#l4175"><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#l3671"><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#l3675"><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,710
<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,718
<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

@ -59,15 +59,14 @@ body {background-color:#fef1f0;}
<a name="l32"></a>
<a name="l33"></a>&gt;</span><span class=cF2>Cd(&quot;~/Psalmody&quot;);</span><span class=cF0> See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/GuideLines.DD.html#l29"><span class=cF4>::/Home dir</span></a><span class=cF0>.
<a name="l34"></a>
<a name="l35"></a>If a file is not found, </span><span class=cF2>.Z</span><span class=cF0> is added or removed and a search is done, again. If a file is still not found, all parent
<a name="l36"></a>directories are searched.
<a name="l37"></a>
<a name="l38"></a>You can place macros in your </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/PersonalMenu.DD.html#l1"><span class=cF4>PersonalMenu</span></a><span class=cF0> for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l9"><span class=cF4>Cd</span></a><span class=cF0>() commands. </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> to access your menu.
<a name="l39"></a>
<a name="l40"></a>&gt;</span><span class=cF2>Find(&quot;needle&quot;,&quot;/Demo/*.CC;*.DD;&quot;);</span><span class=cF0> See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/FileUtils.DD.html#l1"><span class=cF4>File Utils</span></a><span class=cF0>.
<a name="l41"></a></span><span class=cF4>
<a name="l42"></a><u>Cmd Line Routines</span><span class=cF0>
<a name="l43"></a></span><span class=cF9>
<a name="l44"></a>Take Tour</u></span><span class=cF0>
<a name="l35"></a>If a file is not found, all parent directories are searched.
<a name="l36"></a>
<a name="l37"></a>You can place macros in your </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/PersonalMenu.DD.html#l1"><span class=cF4>PersonalMenu</span></a><span class=cF0> for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l9"><span class=cF4>Cd</span></a><span class=cF0>() commands. </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> to access your menu.
<a name="l38"></a>
<a name="l39"></a>&gt;</span><span class=cF2>Find(&quot;needle&quot;,&quot;/Demo/*.CC;*.DD;&quot;);</span><span class=cF0> See </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/FileUtils.DD.html#l1"><span class=cF4>File Utils</span></a><span class=cF0>.
<a name="l40"></a></span><span class=cF4>
<a name="l41"></a><u>Cmd Line Routines</span><span class=cF0>
<a name="l42"></a></span><span class=cF9>
<a name="l43"></a>Take Tour</u></span><span class=cF0>
</span></pre></body>
</html>

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#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="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#l3778"><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#l3984"><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#l161"><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#l4085"><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#l773"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l773"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4089"><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#l4085"><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#l773"><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#l773"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4089"><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

@ -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#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="l49"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4306"><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,8 +96,8 @@ 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#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="l72"></a>* Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4280"><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#l4306"><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#l4284"><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#l4280"><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
@ -110,7 +110,7 @@ body {background-color:#fef1f0;}
<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#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#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="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#l4306"><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#l3980"><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#l3984"><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#l4099"><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#l4103"><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

@ -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#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="l30"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3860"><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#l3853"><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

@ -55,7 +55,7 @@ body {background-color:#fef1f0;}
<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- 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="l31"></a> Kernel module, placed here by the boot-loader, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4484"><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,7 +63,7 @@ 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#l4123"><span class=cF4>CSysFixedArea</span></a><span class=cF0> for misc.
<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#l4127"><span class=cF4>CSysFixedArea</span></a><span class=cF0> for misc.
<a name="l40"></a></span><span class=cF2> 0x0000110000- 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>

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#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="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#l3902"><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#l4138"><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#l3889"><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#l3889"><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#l3883"><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#l3887"><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#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="l4"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3711"><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#l3711"><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#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="l6"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3711"><span class=cF4>CMouseStateGlobals</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3691"><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

@ -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#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="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#l4226"><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

@ -83,7 +83,7 @@ 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#l3980"><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#l3984"><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;
@ -175,7 +175,7 @@ body {background-color:#fef1f0;}
<a name="l148"></a>* Using a sub-int array, </span><span class=cF2>i.u8[3]</span><span class=cF0>, for example, will force a local var to non-reg.
<a name="l149"></a>
<a name="l150"></a>* You can delete the </span><span class=cF4>~/Registry.CC</span><span class=cF0> file. The policy is that deleting it will restore defaults. It is a text doc, if you want
<a name="l151"></a>to edit it. Be careful of tree indentations.
<a name="l151"></a>to edit it. See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Registry.CC.html#l23"><span class=cF4>RegDefault</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Registry.CC.html#l90"><span class=cF4>RegAppend</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Registry.CC.html#l52"><span class=cF4>RegExe</span></a><span class=cF0>. Be careful of tree indentations.
<a name="l152"></a>
<a name="l153"></a>* Study </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/MemRep.CC.html#l1"><span class=cF4>::/System/Utils/MemRep.CC</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/WallPaper.CC.html#l17"><span class=cF4>WallPaper</span></a><span class=cF0>() to learn how the system resources are put together.
<a name="l154"></a>

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#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="l1"></a><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4306"><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#l4277"><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#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="l8"></a>the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4306"><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#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="l16"></a>Finally, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4306"><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#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="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#l4306"><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,710 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,718 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#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="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#l3984"><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#l4103"><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

@ -56,7 +56,7 @@ body {background-color:#fef1f0;}
<a name="l29"></a> </span><span class=cF5>WinToTop</span><span class=cF0>(user);
<a name="l30"></a> </span><span class=cF5>WinTileVert</span><span class=cF0>;
<a name="l31"></a> </span><span class=cF6>&quot;Boot Time:%7.3fs\n&quot;</span><span class=cF0>, </span><span class=cF5>tS</span><span class=cF0>;
<a name="l32"></a> </span><span class=cF5>XTalk</span><span class=cF0>(user, </span><span class=cF6>&quot;Cd;#include \&quot;Once\&quot;;\n&quot;</span><span class=cF0>);
<a name="l32"></a> </span><span class=cF5>XTalk</span><span class=cF0>(user, </span><span class=cF6>&quot;Cd; #include \&quot;Once\&quot;;\n&quot;</span><span class=cF0>);
<a name="l33"></a> </span><span class=cF5>Silent</span><span class=cF0>; </span><span class=cF2>//no output to screen</span><span class=cF0>
<a name="l34"></a> </span><span class=cF5>ACInit</span><span class=cF0>(</span><span class=cF6>&quot;/*;!*/Bible.TXT;!*/Clementine.TXT;!*/PCIDevices.DD;!*/HTML/*;!*/ChangeLog.DD&quot;</span><span class=cF0>);
<a name="l35"></a> </span><span class=cF5>Silent</span><span class=cF0>(</span><span class=cF3>OFF</span><span class=cF0>); </span><span class=cF2>//no output to screen</span><span class=cF0>

View file

@ -614,12 +614,12 @@ body {background-color:#fef1f0;}
<a name="l587"></a> </span><span class=cF1>if</span><span class=cF0> (port-&gt;signature == </span><span class=cF3>AHCI_PxSIG_ATA</span><span class=cF0>)
<a name="l588"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l589"></a> bd-&gt;max_blk = </span><span class=cFD>AHCILBA48CapacityGet</span><span class=cF0>(dev_id_record);
<a name="l590"></a> </span><span class=cF6>&quot;MAX BLOCK %d, disk size %d MiB\n&quot;</span><span class=cF0>, bd-&gt;max_blk, bd-&gt;max_blk * </span><span class=cF3>BLK_SIZE</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l590"></a> </span><span class=cF6>&quot;Max Block: %d, Disk Size: %d MiB\n&quot;</span><span class=cF0>, bd-&gt;max_blk, bd-&gt;max_blk * </span><span class=cF3>BLK_SIZE</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l591"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l592"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l593"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l594"></a> bd-&gt;max_blk = </span><span class=cFD>AHCIAtapiCapacityGet</span><span class=cF0>(bd);
<a name="l595"></a> </span><span class=cF6>&quot;MAX BLOCK %d, disk size %d MiB\n&quot;</span><span class=cF0>, bd-&gt;max_blk, bd-&gt;max_blk * </span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l595"></a> </span><span class=cF6>&quot;Max Block: %d, Disk Size: %d MiB\n&quot;</span><span class=cF0>, bd-&gt;max_blk, bd-&gt;max_blk * </span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l596"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l597"></a>}
<a name="l598"></a>

View file

@ -410,7 +410,7 @@ body {background-color:#fef1f0;}
<a name="l383"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l384"></a> </span><span class=cF6>&quot;$FG,%d$$BG,%d$&quot;</span><span class=cF0>, attr &amp; </span><span class=cFE>15</span><span class=cF0>, attr &gt;&gt; </span><span class=cFE>4</span><span class=cF0>;
<a name="l385"></a>
<a name="l386"></a> </span><span class=cF6>&quot;%C %-8Z %-10Z &quot;</span><span class=cF0>, drv_let,
<a name="l386"></a> </span><span class=cF6>&quot;%C %-9Z %-10Z &quot;</span><span class=cF0>, drv_let,
<a name="l387"></a> drive-&gt;fs_type &amp; </span><span class=cF3>FSG_TYPE_MASK</span><span class=cF0>,
<a name="l388"></a> </span><span class=cF6>&quot;ST_DRIVE_TYPES&quot;</span><span class=cF0>,
<a name="l389"></a> bd-&gt;type,
@ -421,12 +421,12 @@ body {background-color:#fef1f0;}
<a name="l394"></a>
<a name="l395"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveModelNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
<a name="l396"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l397"></a> </span><span class=cF6>&quot; Model# :%s\n&quot;</span><span class=cF0>, st;
<a name="l397"></a> </span><span class=cF6>&quot; Model: %s\n&quot;</span><span class=cF0>, st;
<a name="l398"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l399"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l400"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveSerialNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
<a name="l401"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l402"></a> </span><span class=cF6>&quot; Serial#:%s\n&quot;</span><span class=cF0>, st;
<a name="l402"></a> </span><span class=cF6>&quot; Serial: %s\n&quot;</span><span class=cF0>, st;
<a name="l403"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l404"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l405"></a> </span><span class=cF1>if</span><span class=cF0> (bd-&gt;type == </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0> || bd-&gt;type == </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>)

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#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="l145"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3842"><span class=cF4>flags</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3888"><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#l3884"><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#l3888"><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#l3884"><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#l3888"><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#l3884"><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#l3888"><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

@ -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#l4099"><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#l4103"><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#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="l270"></a></span><span class=cF2>//Alloc </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#l4099"><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#l4103"><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#l4099"><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#l4103"><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#l3980"><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#l3984"><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#l4369"><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#l4373"><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

@ -416,7 +416,7 @@ body {background-color:#fef1f0;}
<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#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#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="l392"></a></span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#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="l400"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#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="l414"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#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="l485"></a>{</span><span class=cF2>//Accepts a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#l4123"><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#l4127"><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 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#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="l352"></a></span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3984"><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#l3884"><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#l3888"><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#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="l112"></a> </span><span class=cF2>//Returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3888"><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#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="l129"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3889"><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#l3890"><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#l4138"><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#l4138"><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#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="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#l4212"><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#l4213"><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#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="l144"></a>{</span><span class=cF2>//Checks for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3889"><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#l4138"><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#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="l171"></a>{</span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3889"><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#l4138"><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#l4134"><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#l4138"><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#l4369"><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#l4373"><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#l4377"><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#l4381"><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#l4134"><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#l4138"><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#l3750"><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#l3754"><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

@ -172,213 +172,214 @@ body {background-color:#fef1f0;}
<a name="l145"></a> </span><span class=cF1>for</span><span class=cF0> (f = </span><span class=cFE>0</span><span class=cF0>; f &lt; </span><span class=cFE>8</span><span class=cF0>; f++)
<a name="l146"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l147"></a> w1 = </span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_VENDOR_ID</span><span class=cF0>);
<a name="l148"></a> </span><span class=cF1>if</span><span class=cF0> (w1 != </span><span class=cFE>0xFFFF</span><span class=cF0>)
<a name="l149"></a> {
<a name="l150"></a> tmppci = </span><span class=cF5>SysCAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CPCIDev</span><span class=cF7>)</span><span class=cF0>);
<a name="l151"></a> tmppci-&gt;bus = b;
<a name="l152"></a> tmppci-&gt;</span><span class=cFB>dev</span><span class=cF0> = d;
<a name="l153"></a> tmppci-&gt;fun = f;
<a name="l154"></a> tmppci-&gt;vendor_id = w1;
<a name="l155"></a> tmppci-&gt;device_id = w2 = </span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_DEVICE_ID</span><span class=cF0>);
<a name="l156"></a> tmppci-&gt;sub_code = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUB_CODE</span><span class=cF0>);
<a name="l157"></a> tmppci-&gt;class_code = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CLASS_CODE</span><span class=cF0>);
<a name="l158"></a> tmppci-&gt;prog_if = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_PROG_IF</span><span class=cF0>);
<a name="l159"></a> tmppci-&gt;revision_id = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_REVISION_ID</span><span class=cF0>);
<a name="l160"></a> tmppci-&gt;bist = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BIST</span><span class=cF0>);
<a name="l161"></a> tmppci-&gt;header_type = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_HEADER_TYPE</span><span class=cF0>);
<a name="l162"></a> tmppci-&gt;latency_timer=</span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_LATENCY_TIMER</span><span class=cF0>);
<a name="l163"></a> tmppci-&gt;capabilities= </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CAPABILITIES</span><span class=cF0>);
<a name="l164"></a> tmppci-&gt;cache_line_size=</span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CACHE_LINE_SIZE</span><span class=cF0>);
<a name="l165"></a> tmppci-&gt;subsys_id = </span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUBSYS_ID</span><span class=cF0>);
<a name="l166"></a> tmppci-&gt;subsys_vendor_id=</span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUBSYS_VENDOR_ID</span><span class=cF0>);
<a name="l167"></a> tmppci-&gt;erom = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_EXPANSION_ROM</span><span class=cF0>);
<a name="l168"></a> tmppci-&gt;base[</span><span class=cFE>0</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE0</span><span class=cF0>);
<a name="l169"></a> tmppci-&gt;base[</span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE1</span><span class=cF0>);
<a name="l170"></a> tmppci-&gt;base[</span><span class=cFE>2</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE2</span><span class=cF0>);
<a name="l171"></a> tmppci-&gt;base[</span><span class=cFE>3</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE3</span><span class=cF0>);
<a name="l172"></a> tmppci-&gt;base[</span><span class=cFE>4</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE4</span><span class=cF0>);
<a name="l173"></a> tmppci-&gt;base[</span><span class=cFE>5</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE5</span><span class=cF0>);
<a name="l174"></a> </span><span class=cF5>PCILookUpSingle</span><span class=cF0>(doc, w1, w2, &amp;tmppci-&gt;vendor_str, &amp;tmppci-&gt;dev_id_str);
<a name="l175"></a> </span><span class=cF5>QueueInsert</span><span class=cF0>(tmppci, </span><span class=cFB>dev</span><span class=cF0>.pci_head.last);
<a name="l176"></a> timeout = </span><span class=cFE>32</span><span class=cF0> * </span><span class=cFE>8</span><span class=cF0> * </span><span class=cFE>2</span><span class=cF0>;
<a name="l177"></a> }
<a name="l178"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFB>sys_pci_buses</span><span class=cF0> == </span><span class=cFE>256</span><span class=cF0> &amp;&amp; --timeout &lt;= </span><span class=cFE>0</span><span class=cF0>)
<a name="l179"></a> </span><span class=cF1>goto</span><span class=cF0> lud_done;
<a name="l180"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l181"></a>lud_done:
<a name="l182"></a> </span><span class=cF5>DocDel</span><span class=cF0>(doc);
<a name="l183"></a>}
<a name="l184"></a>
<a name="l185"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>CPCIDev</span><span class=cF0> *</span><span class=cF5>PCIDevFind</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> class_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>U16</span><span class=cF0> sub_code=</span><span class=cF3>NULL</span><span class=cF0>,
<a name="l186"></a> </span><span class=cF9>U16</span><span class=cF0> vendor_id=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>U16</span><span class=cF0> device_id=</span><span class=cF3>NULL</span><span class=cF0>,
<a name="l187"></a> </span><span class=cF1>U8</span><span class=cF0> _bus=</span><span class=cFE>0xFF</span><span class=cF0>, </span><span class=cF1>U8</span><span class=cF0> _dev=</span><span class=cFE>0xFF</span><span class=cF0>, </span><span class=cF1>U8</span><span class=cF0> _fun=</span><span class=cFE>0xFF</span><span class=cF0>)
<a name="l188"></a>{</span><span class=cF2>//return first device with matching class &amp; subcode, vendor &amp; device id, or a specific device.</span><span class=cF0>
<a name="l189"></a> </span><span class=cF5>PCILookUpDevs</span><span class=cF0>;
<a name="l190"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> *p = </span><span class=cFB>dev</span><span class=cF0>.pci_head.next;
<a name="l191"></a>
<a name="l192"></a> </span><span class=cF1>while</span><span class=cF0> (p != &amp;</span><span class=cFB>dev</span><span class=cF0>.pci_head)
<a name="l193"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l194"></a> </span><span class=cF1>if</span><span class=cF0> (p-&gt;vendor_id == vendor_id &amp;&amp; p-&gt;device_id == device_id ||
<a name="l195"></a> p-&gt;class_code == class_code &amp;&amp; p-&gt;sub_code == sub_code ||
<a name="l196"></a> p-&gt;bus == _bus &amp;&amp; p-&gt;</span><span class=cFB>dev</span><span class=cF0> == _dev &amp;&amp; p-&gt;fun == _fun)
<a name="l197"></a>
<a name="l198"></a> </span><span class=cF1>return</span><span class=cF0> p;
<a name="l199"></a>
<a name="l200"></a> p = p-&gt;next;
<a name="l201"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l202"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l203"></a>}
<a name="l204"></a>
<a name="l205"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>PCIRep</span><span class=cF0>()
<a name="l206"></a>{</span><span class=cF2>//Report description of PCI devices.</span><span class=cF0>
<a name="l207"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> *tmppci;
<a name="l208"></a>
<a name="l209"></a> </span><span class=cF6>&quot;PCI Buses:%d\n&quot;</span><span class=cF0>, </span><span class=cFB>sys_pci_buses</span><span class=cF0>;
<a name="l210"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>FileFind</span><span class=cF7>(</span><span class=cF3>PCI_DEV_FILE</span><span class=cF7>)</span><span class=cF0>)
<a name="l211"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l212"></a> </span><span class=cF6>&quot;You don't have the PCI device file.\n&quot;</span><span class=cF0>;
<a name="l213"></a> </span><span class=cF1>return</span><span class=cF0>;
<a name="l214"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l215"></a> </span><span class=cF5>PCILookUpDevs</span><span class=cF0>;
<a name="l216"></a> tmppci = </span><span class=cFB>dev</span><span class=cF0>.pci_head.next;
<a name="l217"></a> </span><span class=cF1>while</span><span class=cF0> (tmppci != &amp;</span><span class=cFB>dev</span><span class=cF0>.pci_head)
<a name="l218"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l219"></a> </span><span class=cF6>&quot;%02X:%02X:%01X %02X-%02X-%02X &quot;</span><span class=cF0>,
<a name="l220"></a> tmppci-&gt;bus, tmppci-&gt;</span><span class=cFB>dev</span><span class=cF0>, tmppci-&gt;fun,
<a name="l221"></a> tmppci-&gt;class_code, tmppci-&gt;sub_code, tmppci-&gt;prog_if;
<a name="l222"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l223"></a> </span><span class=cF6>&quot;$GREEN$&quot;</span><span class=cF0>;
<a name="l224"></a> </span><span class=cF6>&quot;%s &quot;</span><span class=cF0>, tmppci-&gt;vendor_str;
<a name="l225"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l226"></a> </span><span class=cF6>&quot;$CYAN$&quot;</span><span class=cF0>;
<a name="l227"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, tmppci-&gt;dev_id_str;
<a name="l228"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l229"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l230"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
<a name="l231"></a> ,
<a name="l232"></a> tmppci=tmppci-&gt;next;
<a name="l233"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l234"></a>}
<a name="l235"></a>
<a name="l236"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Info;Memory/Info&quot;</span><span class=cF0>
<a name="l237"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemBIOSRep</span><span class=cF0>()
<a name="l238"></a>{</span><span class=cF2>//Report the memory ranges reported by the BIOS at boot.</span><span class=cF0>
<a name="l239"></a> </span><span class=cF9>U16</span><span class=cF0> *m01 = </span><span class=cFD>MEM_E801</span><span class=cF0>;
<a name="l240"></a> </span><span class=cF9>CMemE820</span><span class=cF0> *m20 = </span><span class=cFD>MEM_E820</span><span class=cF0>;
<a name="l241"></a> </span><span class=cF9>CMemRange</span><span class=cF0> *tmpmr;
<a name="l242"></a>
<a name="l243"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l244"></a> </span><span class=cF6>&quot;$PURPLE$Standard Addresses$FG$\n&quot;</span><span class=cF0>;
<a name="l245"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l246"></a> </span><span class=cF6>&quot;Standard Addresses\n&quot;</span><span class=cF0>;
<a name="l247"></a>
<a name="l248"></a> </span><span class=cF6>&quot;FEE00000-FEE00FFF See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l638"><span class=cF4>APIC</span></a><span class=cF6>\n\n&quot;</span><span class=cF0>;
<a name="l249"></a>
<a name="l250"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l251"></a> </span><span class=cF6>&quot;$PURPLE$VBE Linear Framebuffer$FG$\n&quot;</span><span class=cF0>;
<a name="l252"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l253"></a> </span><span class=cF6>&quot;VBE Linear Framebuffer\n&quot;</span><span class=cF0>;
<a name="l254"></a>
<a name="l255"></a> </span><span class=cF6>&quot;%08X-%08X See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l532"><span class=cF4>VBE Mode</span></a><span class=cF6>\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="l256"></a>
<a name="l257"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l258"></a> </span><span class=cF6>&quot;\n$PURPLE$32 Bit Device Mem$FG$\n&quot;</span><span class=cF0>;
<a name="l259"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l260"></a> </span><span class=cF6>&quot;\n32 Bit Device Mem\n&quot;</span><span class=cF0>;
<a name="l261"></a>
<a name="l262"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>LBts</span><span class=cF7>(</span><span class=cF0>&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
<a name="l263"></a> </span><span class=cF5>Yield</span><span class=cF0>;
<a name="l264"></a> tmpmr = </span><span class=cFB>dev</span><span class=cF0>.mem32_head.next;
<a name="l265"></a> </span><span class=cF1>while</span><span class=cF0> (tmpmr != &amp;</span><span class=cFB>dev</span><span class=cF0>.mem32_head)
<a name="l266"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l267"></a> </span><span class=cF6>&quot;%z:%08X-%08X\n&quot;</span><span class=cF0>, tmpmr-&gt;type, </span><span class=cF6>&quot;Unused\0RAM\0Device&quot;</span><span class=cF0>, tmpmr-&gt;base, tmpmr-&gt;base + tmpmr-&gt;size - </span><span class=cFE>1</span><span class=cF0>;
<a name="l268"></a> tmpmr = tmpmr-&gt;next;
<a name="l269"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l270"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF0>);
<a name="l271"></a>
<a name="l272"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l273"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Memory Report 15:E801$FG$\n&quot;</span><span class=cF0>;
<a name="l274"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l275"></a> </span><span class=cF6>&quot;\nBIOS Memory Report 15:E801\n&quot;</span><span class=cF0>;
<a name="l276"></a>
<a name="l277"></a> </span><span class=cF6>&quot;0000000000000000-%016X\n&quot;</span><span class=cF0>, </span><span class=cFE>0x100000</span><span class=cF0> + m01[</span><span class=cFE>0</span><span class=cF0>] * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
<a name="l278"></a> </span><span class=cF6>&quot;0000000001000000-%016X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_16MEG_AREA_LIMIT</span><span class=cF0> + m01[</span><span class=cFE>1</span><span class=cF0>] * </span><span class=cFE>64</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
<a name="l279"></a>
<a name="l280"></a> </span><span class=cF1>if</span><span class=cF0> (m20-&gt;type)
<a name="l281"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l282"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l283"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Memory Report 15:E820$FG$\n&quot;</span><span class=cF0>;
<a name="l284"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l285"></a> </span><span class=cF6>&quot;\nBIOS Memory Report 15:E820\n&quot;</span><span class=cF0>;
<a name="l286"></a> </span><span class=cF1>while</span><span class=cF0> (m20-&gt;type)
<a name="l287"></a> {
<a name="l288"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l289"></a> </span><span class=cF6>&quot;$RED$&quot;</span><span class=cF0>;
<a name="l290"></a> </span><span class=cF1>switch</span><span class=cF0>(m20-&gt;type)
<a name="l291"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l292"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_USABLE</span><span class=cF0>:
<a name="l293"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l294"></a> </span><span class=cF6>&quot;$GREEN$&quot;</span><span class=cF0>;
<a name="l295"></a> </span><span class=cF6>&quot;Usable :&quot;</span><span class=cF0>;
<a name="l296"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l297"></a>
<a name="l298"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI</span><span class=cF0>:
<a name="l299"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI_NVS</span><span class=cF0>:
<a name="l300"></a> </span><span class=cF6>&quot;ACPI :&quot;</span><span class=cF0>;
<a name="l301"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l302"></a>
<a name="l303"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_BAD_MEM</span><span class=cF0>:
<a name="l304"></a> </span><span class=cF6>&quot;Bad memory :&quot;</span><span class=cF0>;
<a name="l305"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l306"></a>
<a name="l307"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_PERM_MEM</span><span class=cF0>:
<a name="l308"></a> </span><span class=cF6>&quot;Perm memory:&quot;</span><span class=cF0>;
<a name="l309"></a>
<a name="l310"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_RESERVED</span><span class=cF0>:
<a name="l311"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l312"></a> </span><span class=cF6>&quot;Reserved :&quot;</span><span class=cF0>;
<a name="l313"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l314"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l315"></a> </span><span class=cF6>&quot;%016X-%016X&quot;</span><span class=cF0>, m20-&gt;base, m20-&gt;base + m20-&gt;len - </span><span class=cFE>1</span><span class=cF0>;
<a name="l316"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l317"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l318"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
<a name="l319"></a> m20++;
<a name="l320"></a> }
<a name="l321"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l322"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l323"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Total Memory Report$FG$: &quot;</span><span class=cF0>;
<a name="l324"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l325"></a> </span><span class=cF6>&quot;\nBIOS Total Memory Report: &quot;</span><span class=cF0>;
<a name="l326"></a>
<a name="l327"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>MemBIOSTotal</span><span class=cF0> &lt; </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0>)
<a name="l328"></a> </span><span class=cF6>&quot;%03d MiB\n&quot;</span><span class=cF0>, </span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l329"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l330"></a> </span><span class=cF6>&quot;%04d GiB\n&quot;</span><span class=cF0>, </span><span class=cF5>CeilU64</span><span class=cF0>(</span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>, </span><span class=cFE>1024</span><span class=cF0>) / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l331"></a>}
<a name="l332"></a>
<a name="l333"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemPageRep</span><span class=cF0>()
<a name="l334"></a>{</span><span class=cF2>//Page Table Report.</span><span class=cF0>
<a name="l335"></a> </span><span class=cF6>&quot;MAPPED\t :%010X with &quot;</span><span class=cF0>, </span><span class=cFB>mem_mapped_space</span><span class=cF0>;
<a name="l336"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l337"></a> </span><span class=cF6>&quot;$RED$&quot;</span><span class=cF0>;
<a name="l338"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&amp;</span><span class=cFB>mem_page_size</span><span class=cF0>, </span><span class=cFE>30</span><span class=cF7>)</span><span class=cF0>)
<a name="l339"></a> </span><span class=cF6>&quot;1GIG&quot;</span><span class=cF0>;
<a name="l340"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l341"></a> </span><span class=cF6>&quot;2MEG&quot;</span><span class=cF0>;
<a name="l342"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l343"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l344"></a>
<a name="l345"></a> </span><span class=cF6>&quot; pages\n&quot;</span><span class=cF0>;
<a name="l346"></a>
<a name="l347"></a> </span><span class=cF6>&quot;PML2\t :%010X 2MEG :%08X\n&quot;</span><span class=cF0>,
<a name="l348"></a> *</span><span class=cFD>MEM_PML2</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_2MEG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l349"></a> </span><span class=cF6>&quot;PML3\t :%010X 1GIG :%08X\n&quot;</span><span class=cF0>,
<a name="l350"></a> *</span><span class=cFD>MEM_PML3</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_1GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l351"></a> </span><span class=cF6>&quot;PML4\t :%010X 512GIG:%08X\n&quot;</span><span class=cF0>,
<a name="l352"></a> *</span><span class=cFD>MEM_PML4</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l353"></a> </span><span class=cF6>&quot;FIXED_AREA:%010X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>;
<a name="l354"></a> </span><span class=cF6>&quot;HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n&quot;</span><span class=cF0>, </span><span class=cFB>mem_heap_base</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
<a name="l355"></a>}
<a name="l148"></a> </span><span class=cF5>Yield</span><span class=cF0>; </span><span class=cF2>// keep from hanging graphics on bare-metal</span><span class=cF0>
<a name="l149"></a> </span><span class=cF1>if</span><span class=cF0> (w1 != </span><span class=cFE>0xFFFF</span><span class=cF0>)
<a name="l150"></a> {
<a name="l151"></a> tmppci = </span><span class=cF5>SysCAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CPCIDev</span><span class=cF7>)</span><span class=cF0>);
<a name="l152"></a> tmppci-&gt;bus = b;
<a name="l153"></a> tmppci-&gt;</span><span class=cFB>dev</span><span class=cF0> = d;
<a name="l154"></a> tmppci-&gt;fun = f;
<a name="l155"></a> tmppci-&gt;vendor_id = w1;
<a name="l156"></a> tmppci-&gt;device_id = w2 = </span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_DEVICE_ID</span><span class=cF0>);
<a name="l157"></a> tmppci-&gt;sub_code = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUB_CODE</span><span class=cF0>);
<a name="l158"></a> tmppci-&gt;class_code = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CLASS_CODE</span><span class=cF0>);
<a name="l159"></a> tmppci-&gt;prog_if = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_PROG_IF</span><span class=cF0>);
<a name="l160"></a> tmppci-&gt;revision_id = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_REVISION_ID</span><span class=cF0>);
<a name="l161"></a> tmppci-&gt;bist = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BIST</span><span class=cF0>);
<a name="l162"></a> tmppci-&gt;header_type = </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_HEADER_TYPE</span><span class=cF0>);
<a name="l163"></a> tmppci-&gt;latency_timer=</span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_LATENCY_TIMER</span><span class=cF0>);
<a name="l164"></a> tmppci-&gt;capabilities= </span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CAPABILITIES</span><span class=cF0>);
<a name="l165"></a> tmppci-&gt;cache_line_size=</span><span class=cF5>PCIReadU8</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_CACHE_LINE_SIZE</span><span class=cF0>);
<a name="l166"></a> tmppci-&gt;subsys_id = </span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUBSYS_ID</span><span class=cF0>);
<a name="l167"></a> tmppci-&gt;subsys_vendor_id=</span><span class=cF5>PCIReadU16</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_SUBSYS_VENDOR_ID</span><span class=cF0>);
<a name="l168"></a> tmppci-&gt;erom = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_EXPANSION_ROM</span><span class=cF0>);
<a name="l169"></a> tmppci-&gt;base[</span><span class=cFE>0</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE0</span><span class=cF0>);
<a name="l170"></a> tmppci-&gt;base[</span><span class=cFE>1</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE1</span><span class=cF0>);
<a name="l171"></a> tmppci-&gt;base[</span><span class=cFE>2</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE2</span><span class=cF0>);
<a name="l172"></a> tmppci-&gt;base[</span><span class=cFE>3</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE3</span><span class=cF0>);
<a name="l173"></a> tmppci-&gt;base[</span><span class=cFE>4</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE4</span><span class=cF0>);
<a name="l174"></a> tmppci-&gt;base[</span><span class=cFE>5</span><span class=cF0>] = </span><span class=cF5>PCIReadU32</span><span class=cF0>(b, d, f, </span><span class=cF3>PCIR_BASE5</span><span class=cF0>);
<a name="l175"></a> </span><span class=cF5>PCILookUpSingle</span><span class=cF0>(doc, w1, w2, &amp;tmppci-&gt;vendor_str, &amp;tmppci-&gt;dev_id_str);
<a name="l176"></a> </span><span class=cF5>QueueInsert</span><span class=cF0>(tmppci, </span><span class=cFB>dev</span><span class=cF0>.pci_head.last);
<a name="l177"></a> timeout = </span><span class=cFE>32</span><span class=cF0> * </span><span class=cFE>8</span><span class=cF0> * </span><span class=cFE>2</span><span class=cF0>;
<a name="l178"></a> }
<a name="l179"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFB>sys_pci_buses</span><span class=cF0> == </span><span class=cFE>256</span><span class=cF0> &amp;&amp; --timeout &lt;= </span><span class=cFE>0</span><span class=cF0>)
<a name="l180"></a> </span><span class=cF1>goto</span><span class=cF0> lud_done;
<a name="l181"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l182"></a>lud_done:
<a name="l183"></a> </span><span class=cF5>DocDel</span><span class=cF0>(doc);
<a name="l184"></a>}
<a name="l185"></a>
<a name="l186"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>CPCIDev</span><span class=cF0> *</span><span class=cF5>PCIDevFind</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> class_code=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>U16</span><span class=cF0> sub_code=</span><span class=cF3>NULL</span><span class=cF0>,
<a name="l187"></a> </span><span class=cF9>U16</span><span class=cF0> vendor_id=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>U16</span><span class=cF0> device_id=</span><span class=cF3>NULL</span><span class=cF0>,
<a name="l188"></a> </span><span class=cF1>U8</span><span class=cF0> _bus=</span><span class=cFE>0xFF</span><span class=cF0>, </span><span class=cF1>U8</span><span class=cF0> _dev=</span><span class=cFE>0xFF</span><span class=cF0>, </span><span class=cF1>U8</span><span class=cF0> _fun=</span><span class=cFE>0xFF</span><span class=cF0>)
<a name="l189"></a>{</span><span class=cF2>//return first device with matching class &amp; subcode, vendor &amp; device id, or a specific device.</span><span class=cF0>
<a name="l190"></a> </span><span class=cF5>PCILookUpDevs</span><span class=cF0>;
<a name="l191"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> *p = </span><span class=cFB>dev</span><span class=cF0>.pci_head.next;
<a name="l192"></a>
<a name="l193"></a> </span><span class=cF1>while</span><span class=cF0> (p != &amp;</span><span class=cFB>dev</span><span class=cF0>.pci_head)
<a name="l194"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l195"></a> </span><span class=cF1>if</span><span class=cF0> (p-&gt;vendor_id == vendor_id &amp;&amp; p-&gt;device_id == device_id ||
<a name="l196"></a> p-&gt;class_code == class_code &amp;&amp; p-&gt;sub_code == sub_code ||
<a name="l197"></a> p-&gt;bus == _bus &amp;&amp; p-&gt;</span><span class=cFB>dev</span><span class=cF0> == _dev &amp;&amp; p-&gt;fun == _fun)
<a name="l198"></a>
<a name="l199"></a> </span><span class=cF1>return</span><span class=cF0> p;
<a name="l200"></a>
<a name="l201"></a> p = p-&gt;next;
<a name="l202"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l203"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l204"></a>}
<a name="l205"></a>
<a name="l206"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>PCIRep</span><span class=cF0>()
<a name="l207"></a>{</span><span class=cF2>//Report description of PCI devices.</span><span class=cF0>
<a name="l208"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> *tmppci;
<a name="l209"></a>
<a name="l210"></a> </span><span class=cF6>&quot;PCI Buses:%d\n&quot;</span><span class=cF0>, </span><span class=cFB>sys_pci_buses</span><span class=cF0>;
<a name="l211"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>FileFind</span><span class=cF7>(</span><span class=cF3>PCI_DEV_FILE</span><span class=cF7>)</span><span class=cF0>)
<a name="l212"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l213"></a> </span><span class=cF6>&quot;You don't have the PCI device file.\n&quot;</span><span class=cF0>;
<a name="l214"></a> </span><span class=cF1>return</span><span class=cF0>;
<a name="l215"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l216"></a> </span><span class=cF5>PCILookUpDevs</span><span class=cF0>;
<a name="l217"></a> tmppci = </span><span class=cFB>dev</span><span class=cF0>.pci_head.next;
<a name="l218"></a> </span><span class=cF1>while</span><span class=cF0> (tmppci != &amp;</span><span class=cFB>dev</span><span class=cF0>.pci_head)
<a name="l219"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l220"></a> </span><span class=cF6>&quot;%02X:%02X:%01X %02X-%02X-%02X &quot;</span><span class=cF0>,
<a name="l221"></a> tmppci-&gt;bus, tmppci-&gt;</span><span class=cFB>dev</span><span class=cF0>, tmppci-&gt;fun,
<a name="l222"></a> tmppci-&gt;class_code, tmppci-&gt;sub_code, tmppci-&gt;prog_if;
<a name="l223"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l224"></a> </span><span class=cF6>&quot;$GREEN$&quot;</span><span class=cF0>;
<a name="l225"></a> </span><span class=cF6>&quot;%s &quot;</span><span class=cF0>, tmppci-&gt;vendor_str;
<a name="l226"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l227"></a> </span><span class=cF6>&quot;$CYAN$&quot;</span><span class=cF0>;
<a name="l228"></a> </span><span class=cF6>&quot;%s&quot;</span><span class=cF0>, tmppci-&gt;dev_id_str;
<a name="l229"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l230"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l231"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
<a name="l232"></a> ,
<a name="l233"></a> tmppci=tmppci-&gt;next;
<a name="l234"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l235"></a>}
<a name="l236"></a>
<a name="l237"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Info;Memory/Info&quot;</span><span class=cF0>
<a name="l238"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemBIOSRep</span><span class=cF0>()
<a name="l239"></a>{</span><span class=cF2>//Report the memory ranges reported by the BIOS at boot.</span><span class=cF0>
<a name="l240"></a> </span><span class=cF9>U16</span><span class=cF0> *m01 = </span><span class=cFD>MEM_E801</span><span class=cF0>;
<a name="l241"></a> </span><span class=cF9>CMemE820</span><span class=cF0> *m20 = </span><span class=cFD>MEM_E820</span><span class=cF0>;
<a name="l242"></a> </span><span class=cF9>CMemRange</span><span class=cF0> *tmpmr;
<a name="l243"></a>
<a name="l244"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l245"></a> </span><span class=cF6>&quot;$PURPLE$Standard Addresses$FG$\n&quot;</span><span class=cF0>;
<a name="l246"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l247"></a> </span><span class=cF6>&quot;Standard Addresses\n&quot;</span><span class=cF0>;
<a name="l248"></a>
<a name="l249"></a> </span><span class=cF6>&quot;FEE00000-FEE00FFF See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l638"><span class=cF4>APIC</span></a><span class=cF6>\n\n&quot;</span><span class=cF0>;
<a name="l250"></a>
<a name="l251"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l252"></a> </span><span class=cF6>&quot;$PURPLE$VBE Linear Framebuffer$FG$\n&quot;</span><span class=cF0>;
<a name="l253"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l254"></a> </span><span class=cF6>&quot;VBE Linear Framebuffer\n&quot;</span><span class=cF0>;
<a name="l255"></a>
<a name="l256"></a> </span><span class=cF6>&quot;%08X-%08X See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l532"><span class=cF4>VBE Mode</span></a><span class=cF6>\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="l257"></a>
<a name="l258"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l259"></a> </span><span class=cF6>&quot;\n$PURPLE$32 Bit Device Mem$FG$\n&quot;</span><span class=cF0>;
<a name="l260"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l261"></a> </span><span class=cF6>&quot;\n32 Bit Device Mem\n&quot;</span><span class=cF0>;
<a name="l262"></a>
<a name="l263"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>LBts</span><span class=cF7>(</span><span class=cF0>&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
<a name="l264"></a> </span><span class=cF5>Yield</span><span class=cF0>;
<a name="l265"></a> tmpmr = </span><span class=cFB>dev</span><span class=cF0>.mem32_head.next;
<a name="l266"></a> </span><span class=cF1>while</span><span class=cF0> (tmpmr != &amp;</span><span class=cFB>dev</span><span class=cF0>.mem32_head)
<a name="l267"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l268"></a> </span><span class=cF6>&quot;%z: %08X-%08X\n&quot;</span><span class=cF0>, tmpmr-&gt;type, </span><span class=cF6>&quot;Unused\0RAM\0Device&quot;</span><span class=cF0>, tmpmr-&gt;base, tmpmr-&gt;base + tmpmr-&gt;size - </span><span class=cFE>1</span><span class=cF0>;
<a name="l269"></a> tmpmr = tmpmr-&gt;next;
<a name="l270"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l271"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&amp;</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF0>);
<a name="l272"></a>
<a name="l273"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l274"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Memory Report 15:E801$FG$\n&quot;</span><span class=cF0>;
<a name="l275"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l276"></a> </span><span class=cF6>&quot;\nBIOS Memory Report 15:E801\n&quot;</span><span class=cF0>;
<a name="l277"></a>
<a name="l278"></a> </span><span class=cF6>&quot;0000000000000000-%016X\n&quot;</span><span class=cF0>, </span><span class=cFE>0x100000</span><span class=cF0> + m01[</span><span class=cFE>0</span><span class=cF0>] * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
<a name="l279"></a> </span><span class=cF6>&quot;0000000001000000-%016X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_16MEG_AREA_LIMIT</span><span class=cF0> + m01[</span><span class=cFE>1</span><span class=cF0>] * </span><span class=cFE>64</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
<a name="l280"></a>
<a name="l281"></a> </span><span class=cF1>if</span><span class=cF0> (m20-&gt;type)
<a name="l282"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l283"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l284"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Memory Report 15:E820$FG$\n&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=cF6>&quot;\nBIOS Memory Report 15:E820\n&quot;</span><span class=cF0>;
<a name="l287"></a> </span><span class=cF1>while</span><span class=cF0> (m20-&gt;type)
<a name="l288"></a> {
<a name="l289"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l290"></a> </span><span class=cF6>&quot;$RED$&quot;</span><span class=cF0>;
<a name="l291"></a> </span><span class=cF1>switch</span><span class=cF0>(m20-&gt;type)
<a name="l292"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l293"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_USABLE</span><span class=cF0>:
<a name="l294"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l295"></a> </span><span class=cF6>&quot;$GREEN$&quot;</span><span class=cF0>;
<a name="l296"></a> </span><span class=cF6>&quot;Usable: &quot;</span><span class=cF0>;
<a name="l297"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l298"></a>
<a name="l299"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI</span><span class=cF0>:
<a name="l300"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI_NVS</span><span class=cF0>:
<a name="l301"></a> </span><span class=cF6>&quot;ACPI: &quot;</span><span class=cF0>;
<a name="l302"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l303"></a>
<a name="l304"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_BAD_MEM</span><span class=cF0>:
<a name="l305"></a> </span><span class=cF6>&quot;Bad memory: &quot;</span><span class=cF0>;
<a name="l306"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l307"></a>
<a name="l308"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_PERM_MEM</span><span class=cF0>:
<a name="l309"></a> </span><span class=cF6>&quot;Perm memory: &quot;</span><span class=cF0>;
<a name="l310"></a>
<a name="l311"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_RESERVED</span><span class=cF0>:
<a name="l312"></a> </span><span class=cF1>default</span><span class=cF0>:
<a name="l313"></a> </span><span class=cF6>&quot;Reserved: &quot;</span><span class=cF0>;
<a name="l314"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l315"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l316"></a> </span><span class=cF6>&quot;%016X-%016X&quot;</span><span class=cF0>, m20-&gt;base, m20-&gt;base + m20-&gt;len - </span><span class=cFE>1</span><span class=cF0>;
<a name="l317"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l318"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l319"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
<a name="l320"></a> m20++;
<a name="l321"></a> }
<a name="l322"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l323"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l324"></a> </span><span class=cF6>&quot;\n$PURPLE$BIOS Total Memory Report$FG$: &quot;</span><span class=cF0>;
<a name="l325"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l326"></a> </span><span class=cF6>&quot;\nBIOS Total Memory Report: &quot;</span><span class=cF0>;
<a name="l327"></a>
<a name="l328"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>MemBIOSTotal</span><span class=cF0> &lt; </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0>)
<a name="l329"></a> </span><span class=cF6>&quot;%03d MiB\n&quot;</span><span class=cF0>, </span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l330"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l331"></a> </span><span class=cF6>&quot;%04d GiB\n&quot;</span><span class=cF0>, </span><span class=cF5>CeilU64</span><span class=cF0>(</span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>, </span><span class=cFE>1024</span><span class=cF0>) / </span><span class=cFE>1024</span><span class=cF0>;
<a name="l332"></a>}
<a name="l333"></a>
<a name="l334"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemPageRep</span><span class=cF0>()
<a name="l335"></a>{</span><span class=cF2>//Page Table Report.</span><span class=cF0>
<a name="l336"></a> </span><span class=cF6>&quot;MAPPED\t :%010X with &quot;</span><span class=cF0>, </span><span class=cFB>mem_mapped_space</span><span class=cF0>;
<a name="l337"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l338"></a> </span><span class=cF6>&quot;$RED$&quot;</span><span class=cF0>;
<a name="l339"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&amp;</span><span class=cFB>mem_page_size</span><span class=cF0>, </span><span class=cFE>30</span><span class=cF7>)</span><span class=cF0>)
<a name="l340"></a> </span><span class=cF6>&quot;1GIG&quot;</span><span class=cF0>;
<a name="l341"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l342"></a> </span><span class=cF6>&quot;2MEG&quot;</span><span class=cF0>;
<a name="l343"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
<a name="l344"></a> </span><span class=cF6>&quot;$FG$&quot;</span><span class=cF0>;
<a name="l345"></a>
<a name="l346"></a> </span><span class=cF6>&quot; pages\n&quot;</span><span class=cF0>;
<a name="l347"></a>
<a name="l348"></a> </span><span class=cF6>&quot;PML2\t :%010X 2MEG :%08X\n&quot;</span><span class=cF0>,
<a name="l349"></a> *</span><span class=cFD>MEM_PML2</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_2MEG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l350"></a> </span><span class=cF6>&quot;PML3\t :%010X 1GIG :%08X\n&quot;</span><span class=cF0>,
<a name="l351"></a> *</span><span class=cFD>MEM_PML3</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_1GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l352"></a> </span><span class=cF6>&quot;PML4\t :%010X 512GIG:%08X\n&quot;</span><span class=cF0>,
<a name="l353"></a> *</span><span class=cFD>MEM_PML4</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
<a name="l354"></a> </span><span class=cF6>&quot;FIXED_AREA:%010X\n&quot;</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>;
<a name="l355"></a> </span><span class=cF6>&quot;HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n&quot;</span><span class=cF0>, </span><span class=cFB>mem_heap_base</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
<a name="l356"></a>}
</span></pre></body>
</html>

View file

@ -575,9 +575,9 @@ body {background-color:#fef1f0;}
<a name="l548"></a> prj_file = </span><span class=cF5>FileNameAbs</span><span class=cF0>(st);
<a name="l549"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l550"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>FileFind</span><span class=cF7>(</span><span class=cF0>prj_file</span><span class=cF7>)</span><span class=cF0>)
<a name="l551"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;;ExeFile(\&quot;%s\&quot;,CCF_JUST_LOAD);&quot;</span><span class=cF0>, prj_file);
<a name="l551"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;; ExeFile(\&quot;%s\&quot;, CCF_JUST_LOAD);&quot;</span><span class=cF0>, prj_file);
<a name="l552"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l553"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;;ExeFile(\&quot;%s\&quot;,CCF_JUST_LOAD);&quot;</span><span class=cF0>, doc-&gt;filename.name);
<a name="l553"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$WW,1$\&quot;; ExeFile(\&quot;%s\&quot;, CCF_JUST_LOAD);&quot;</span><span class=cF0>, doc-&gt;filename.name);
<a name="l554"></a> tmpc=</span><span class=cF5>TaskExe</span><span class=cF0>(task, </span><span class=cF5>Fs</span><span class=cF0>, st, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> | </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0>);
<a name="l555"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l556"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>JobResScan</span><span class=cF7>(</span><span class=cF0>tmpc, &amp;r</span><span class=cF7>)</span><span class=cF0> &amp;&amp; r)

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#l4369"><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#l4373"><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

@ -355,7 +355,7 @@ body {background-color:#fef1f0;}
<a name="l328"></a> okay = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l329"></a> </span><span class=cF1>if</span><span class=cF0> (okay)
<a name="l330"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l331"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$$WW+H,1$$\&quot;;In(\&quot;ExeFile2(\\\&quot;%s\\\&quot;,CCF_CMD_LINE);\\n\&quot;);UserTaskCont;&quot;</span><span class=cF0>, name2);
<a name="l331"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$$WW+H,1$$\&quot;; In(\&quot;ExeFile2(\\\&quot;%s\\\&quot;, CCF_CMD_LINE);\\n\&quot;); UserTaskCont;&quot;</span><span class=cF0>, name2);
<a name="l332"></a> res = </span><span class=cF5>PopUp</span><span class=cF0>(st, parent, _pu_task);
<a name="l333"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l334"></a> </span><span class=cF7>}</span><span class=cF0>
@ -370,7 +370,7 @@ body {background-color:#fef1f0;}
<a name="l343"></a> </span><span class=cF1>U8</span><span class=cF0> *st, *name = </span><span class=cF5>FileNameAbs</span><span class=cF0>(filename), *name2 = </span><span class=cF5>ExtDefault</span><span class=cF0>(name, </span><span class=cF6>&quot;CC&quot;</span><span class=cF0>);
<a name="l344"></a> </span><span class=cF9>I64</span><span class=cF0> res = </span><span class=cFE>0</span><span class=cF0>;
<a name="l345"></a>
<a name="l346"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$$WW+H,1$$\&quot;;ExeFile2(\&quot;%s\&quot;,0x%X);LastFun(0x%X,0x%X);&quot;</span><span class=cF0>, name2, ccf_flags, argc, argv);
<a name="l346"></a> st = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>&quot;\&quot;$$WW+H,1$$\&quot;; ExeFile2(\&quot;%s\&quot;, 0x%X); LastFun(0x%X, 0x%X);&quot;</span><span class=cF0>, name2, ccf_flags, argc, argv);
<a name="l347"></a> res = </span><span class=cF5>PopUp</span><span class=cF0>(st, </span><span class=cF5>Fs</span><span class=cF0>);
<a name="l348"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
<a name="l349"></a> </span><span class=cF5>Free</span><span class=cF0>(name2);

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#l4302"><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#l4306"><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#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="l232"></a> </span><span class=cF6>&quot;</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4127"><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#l4378"><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#l4382"><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#l4378"><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#l4382"><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

@ -743,7 +743,10 @@ U0 Ui(U8 *buf, U8 **_rip, I64 seg_size=64, I64 *_jmp_dst=NULL, Bool just_ins=FAL
rip++;
if (*arg1_st)
CatPrint(line1, "\t%s", arg1_st);
{
CatPrint(line1, "%h*c", 6 - StrLen(tmpo->str), ' ');
CatPrint(line1, "%s", arg1_st);
}
if (*arg2_st)
CatPrint(line1, ", %s", arg2_st);
CatPrint(line1, "\n");

View file

@ -29,7 +29,7 @@ The home directory is specified with a $FG,2$'~'$FG$.
>$FG,2$Cd("~/Psalmody");$FG$ See $LK,"::/Home dir",A="FF:::/Doc/GuideLines.DD,/Home Files"$.
If a file is not found, $FG,2$.Z$FG$ is added or removed and a search is done, again. If a file is still not found, all parent directories are searched.
If a file is not found, all parent directories are searched.
You can place macros in your $LK,"PersonalMenu",A="FI:~/PersonalMenu.DD"$ for $LK,"Cd",A="MN:Cd"$() commands. $FG,2$<CTRL-m>$FG$ to access your menu.

View file

@ -115,7 +115,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check your changes.
* Using a sub-int array, $FG,2$i.u8[3]$FG$, for example, will force a local var to non-reg.
* You can delete the $FG,4$~/Registry.CC$FG$ file. The policy is that deleting it will restore defaults. It is a text doc, if you want to edit it. Be careful of tree indentations.
* You can delete the $FG,4$~/Registry.CC$FG$ file. The policy is that deleting it will restore defaults. It is a text doc, if you want to edit it. See $LK,"RegDefault",A="MN:RegDefault"$, $LK,"RegAppend",A="MN:RegAppend"$, $LK,"RegExe",A="MN:RegExe"$. Be careful of tree indentations.
* Study $LK,"::/System/Utils/MemRep.CC"$ and $LK,"WallPaper",A="MN:WallPaper"$() to learn how the system resources are put together.

View file

@ -29,7 +29,7 @@ U0 StartUpTasks()
WinToTop(user);
WinTileVert;
"Boot Time:%7.3fs\n", tS;
XTalk(user, "Cd;#include \"Once\";\n");
XTalk(user, "Cd; #include \"Once\";\n");
Silent; //no output to screen
ACInit("/*;!*/Bible.TXT;!*/Clementine.TXT;!*/PCIDevices.DD;!*/HTML/*;!*/ChangeLog.DD");
Silent(OFF); //no output to screen

View file

@ -587,12 +587,12 @@ U0 AHCIPortIdentify(CBlkDev *bd)
if (port->signature == AHCI_PxSIG_ATA)
{
bd->max_blk = AHCILBA48CapacityGet(dev_id_record);
"MAX BLOCK %d, disk size %d MiB\n", bd->max_blk, bd->max_blk * BLK_SIZE / 1024 / 1024;
"Max Block: %d, Disk Size: %d MiB\n", bd->max_blk, bd->max_blk * BLK_SIZE / 1024 / 1024;
}
else
{
bd->max_blk = AHCIAtapiCapacityGet(bd);
"MAX BLOCK %d, disk size %d MiB\n", bd->max_blk, bd->max_blk * DVD_BLK_SIZE / 1024 / 1024;
"Max Block: %d, Disk Size: %d MiB\n", bd->max_blk, bd->max_blk * DVD_BLK_SIZE / 1024 / 1024;
}
}

View file

@ -383,7 +383,7 @@ U0 DriveRep()
if (!IsRaw)
"$$FG,%d$$$$BG,%d$$", attr & 15, attr >> 4;
"%C %-8Z %-10Z ", drv_let,
"%C %-9Z %-10Z ", drv_let,
drive->fs_type & FSG_TYPE_MASK,
"ST_DRIVE_TYPES",
bd->type,
@ -394,12 +394,12 @@ U0 DriveRep()
if (st = DriveModelNum(drv_let))
{
" Model# :%s\n", st;
" Model: %s\n", st;
Free(st);
}
if (st = DriveSerialNum(drv_let))
{
" Serial#:%s\n", st;
" Serial: %s\n", st;
Free(st);
}
if (bd->type == BDT_ISO_FILE_READ || bd->type == BDT_ISO_FILE_WRITE)

View file

@ -3652,6 +3652,10 @@ public U32 class CBGR24
{
U8 b, g, r, pad;
};
public U32 class CBGR32
{
U8 b, g, r, a;
};
public I64 class CBGR48
{
U16 b, g, r, pad;

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,710");
$ID,2$DefinePrint("DD_ZEALOS_LOC","94,718");
$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);

View file

@ -145,6 +145,7 @@ U0 PCILookUpDevs()
for (f = 0; f < 8; f++)
{
w1 = PCIReadU16(b, d, f, PCIR_VENDOR_ID);
Yield; // keep from hanging graphics on bare-metal
if (w1 != 0xFFFF)
{
tmppci = SysCAlloc(sizeof(CPCIDev));
@ -264,7 +265,7 @@ public U0 MemBIOSRep()
tmpmr = dev.mem32_head.next;
while (tmpmr != &dev.mem32_head)
{
"%z:%08X-%08X\n", tmpmr->type, "Unused\0RAM\0Device", tmpmr->base, tmpmr->base + tmpmr->size - 1;
"%z: %08X-%08X\n", tmpmr->type, "Unused\0RAM\0Device", tmpmr->base, tmpmr->base + tmpmr->size - 1;
tmpmr = tmpmr->next;
}
LBtr(&sys_semas[SEMA_DEV_MEM], 0);
@ -292,24 +293,24 @@ public U0 MemBIOSRep()
case MEM_E820t_USABLE:
if (!IsRaw)
"$$GREEN$$";
"Usable :";
"Usable: ";
break;
case MEM_E820t_ACPI:
case MEM_E820t_ACPI_NVS:
"ACPI :";
"ACPI: ";
break;
case MEM_E820t_BAD_MEM:
"Bad memory :";
"Bad memory: ";
break;
case MEM_E820t_PERM_MEM:
"Perm memory:";
"Perm memory: ";
case MEM_E820t_RESERVED:
default:
"Reserved :";
"Reserved: ";
break;
}
"%016X-%016X", m20->base, m20->base + m20->len - 1;

View file

@ -548,9 +548,9 @@ U0 EdCodeTools2(CDoc *doc, I64 tool_action, Bool beep=TRUE)
prj_file = FileNameAbs(st);
Free(st);
if (FileFind(prj_file))
st = MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);", prj_file);
st = MStrPrint("\"$$WW,1$$\"; ExeFile(\"%s\", CCF_JUST_LOAD);", prj_file);
else
st = MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);", doc->filename.name);
st = MStrPrint("\"$$WW,1$$\"; ExeFile(\"%s\", CCF_JUST_LOAD);", doc->filename.name);
tmpc=TaskExe(task, Fs, st, 1 << JOBf_WAKE_MASTER | 1 << JOBf_FOCUS_MASTER);
Free(st);
if (JobResScan(tmpc, &r) && r)

View file

@ -328,7 +328,7 @@ public I64 PopUpFile(U8 *filename, Bool warn_ext=TRUE, CTask *parent=NULL, CTask
okay = FALSE;
if (okay)
{
st = MStrPrint("\"$$$$WW+H,1$$$$\";In(\"ExeFile2(\\\"%s\\\",CCF_CMD_LINE);\\n\");UserTaskCont;", name2);
st = MStrPrint("\"$$$$WW+H,1$$$$\"; In(\"ExeFile2(\\\"%s\\\", CCF_CMD_LINE);\\n\"); UserTaskCont;", name2);
res = PopUp(st, parent, _pu_task);
Free(st);
}
@ -343,7 +343,7 @@ public I64 PopUpRunFile(U8 *filename, I64 ccf_flags=0, ...)
U8 *st, *name = FileNameAbs(filename), *name2 = ExtDefault(name, "CC");
I64 res = 0;
st = MStrPrint("\"$$$$WW+H,1$$$$\";ExeFile2(\"%s\",0x%X);LastFun(0x%X,0x%X);", name2, ccf_flags, argc, argv);
st = MStrPrint("\"$$$$WW+H,1$$$$\"; ExeFile2(\"%s\", 0x%X); LastFun(0x%X, 0x%X);", name2, ccf_flags, argc, argv);
res = PopUp(st, Fs);
Free(st);
Free(name2);