mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-03-28 19:05:10 +00:00
Add try-catch to SATARep and AHCIBootDVDProbeAll.
Add CAtapiCloseCmd to clean up AHCIAtapiClose. Improve comments at AHCIAtapiModeWriteSelect.
This commit is contained in:
parent
923b700822
commit
eb2de4f057
86 changed files with 9120 additions and 9059 deletions
ZealOS-2021-08-16-00_28_52.isoindex.html
docs
Apps/Psalmody
Demo
Doc
BlkChain.DD.htmlChangeLog.DD.htmlCharOverview.DD.htmlCharter.DD.htmlCosmiC.DD.htmlCredits.DD.htmlCtrls.DD.htmlDebugOverview.DD.htmlFileMgr.DD.htmlFileUtils.DD.htmlGraphicsOverview.DD.htmlGuideLines.DD.htmlHeapDebug.DD.htmlInstall.DD.htmlJob.DD.htmlMemoryOverview.DD.htmlMenus.DD.htmlMessages.DD.htmlMouse.DD.htmlPags.DD.htmlQuirks.DD.htmlRedSea.DD.htmlStreams.DD.htmlTextBase.DD.htmlTips.DD.htmlTransform.DD.htmlWelcome.DD.html
Home
Kernel
BlkDev
DiskAHCI.CC.htmlDiskATAId.CC.htmlDiskBlkDev.CC.htmlDiskCDDVD.CC.htmlDiskDirA.CC.htmlDiskDrive.CC.htmlDiskFind.CC.htmlDiskFormat.CC.htmlDiskStrA.CC.htmlFileSysFAT.CC.htmlFileSysRedSea.CC.html
Job.CC.htmlKDefine.CC.htmlKInterrupts.CC.htmlKStart16.CC.htmlKTask.CC.htmlKernelA.HH.htmlKernelB.HH.htmlKernelC.HH.htmlMemory
MultiProc.CC.htmlSerialDev
StrA.CC.htmlStrB.CC.htmlMisc
System
BlkDev
Boot
Ctrls
DolDoc
Gr
Utils
src
Binary file not shown.
|
@ -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#l3762"><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#l3771"><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>
|
||||
|
|
|
@ -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>"94,674LOC:"</span><span class=cF0>;
|
||||
<a name="l12"></a> </span><span class=cF6>"94,700LOC:"</span><span class=cF0>;
|
||||
<a name="l13"></a> </span><span class=cF5>CPURep</span><span class=cF0>;
|
||||
<a name="l14"></a>}
|
||||
<a name="l15"></a>
|
||||
|
|
|
@ -111,7 +111,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l84"></a>* Good spell checker.
|
||||
<a name="l85"></a>* Good Bible search.
|
||||
<a name="l86"></a>
|
||||
<a name="l87"></a>* Can </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3530"><span class=cF4>MEM_EXTRA_HASH2_PAGS</span></a><span class=cF0> be just one?
|
||||
<a name="l87"></a>* Can </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3539"><span class=cF4>MEM_EXTRA_HASH2_PAGS</span></a><span class=cF0> be just one?
|
||||
<a name="l88"></a>
|
||||
<a name="l89"></a>* Bible ranges in </span><a href="https://zeal-operating-system.github.io/ZealOS/System/God/GodBible.CC.html#l260"><span class=cF4>BibleVerse</span></a><span class=cF0>().
|
||||
<a name="l90"></a>
|
||||
|
@ -123,7 +123,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l96"></a>
|
||||
<a name="l97"></a>* Asm LIST NOLIST bugs.
|
||||
<a name="l98"></a>
|
||||
<a name="l99"></a>* Review writing to same cache-line from multicore. Do </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3968"><span class=cF4>CTask</span></a><span class=cF0>->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#l3977"><span class=cF4>CTask</span></a><span class=cF0>->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.
|
||||
|
@ -225,7 +225,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l198"></a>
|
||||
<a name="l199"></a>
|
||||
<a name="l200"></a></span><span class=cF5> Bugs? Not really sure.</span><span class=cF0>
|
||||
<a name="l201"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>() crashes on bad drive.
|
||||
<a name="l201"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>() crashes on bad drive.
|
||||
<a name="l202"></a>
|
||||
<a name="l203"></a>* Graphics clipping: screen y+top<0 for top<0?
|
||||
<a name="l204"></a>
|
||||
|
@ -266,7 +266,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l239"></a>
|
||||
<a name="l240"></a>* Links to self document if empty file name? </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l19"><span class=cF4>Document Links</span></a><span class=cF0>
|
||||
<a name="l241"></a>
|
||||
<a name="l242"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3237"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> would be nice if capital "+R".
|
||||
<a name="l242"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3246"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> would be nice if capital "+R".
|
||||
<a name="l243"></a>
|
||||
<a name="l244"></a>* Sprites in cmd line code.
|
||||
<a name="l245"></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#l3872"><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#l3881"><span class=cF4>MESSAGE_CMD</span></a><span class=cF0>?
|
||||
<a name="l265"></a>
|
||||
<a name="l266"></a>* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
|
||||
<a name="l267"></a>
|
||||
|
@ -301,20 +301,20 @@ body {background-color:#fef1f0;}
|
|||
<a name="l274"></a>* International Date output: </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/StrPrint.CC.html#l57"><span class=cF4>MPrintDate</span></a><span class=cF0>(). Every country make own version?
|
||||
<a name="l275"></a>* International Date input: </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/StrScan.CC.html#l162"><span class=cF4>Str2Date</span></a><span class=cF0>().
|
||||
<a name="l276"></a>
|
||||
<a name="l277"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4264"><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#l4273"><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#l3606"><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#l3602"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
|
||||
<a name="l279"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3615"><span class=cF4>TRANSPARENT</span></a><span class=cF0> does not work with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3611"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
|
||||
<a name="l280"></a>
|
||||
<a name="l281"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3592"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick>1 is broken.
|
||||
<a name="l281"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3601"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick>1 is broken.
|
||||
<a name="l282"></a>
|
||||
<a name="l283"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l982"><span class=cF4>GrPutChar3</span></a><span class=cF0>() with depth buf?
|
||||
<a name="l284"></a>
|
||||
<a name="l285"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Ctrls/CtrlsA.CC.html#l1"><span class=cF4>::/System/Ctrls/CtrlsA.CC</span></a><span class=cF0>?
|
||||
<a name="l286"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/System/MathODE.CC.html#l1"><span class=cF4>::/System/MathODE.CC</span></a><span class=cF0>?
|
||||
<a name="l287"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l114"><span class=cF4>Complex</span></a><span class=cF0>?
|
||||
<a name="l288"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4290"><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#l4299"><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#l3592"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
|
||||
<a name="l290"></a>* Eliminate? </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3601"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
|
||||
<a name="l291"></a>
|
||||
<a name="l292"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/WinMgr.CC.html#l489"><span class=cF4>WinMgrTask</span></a><span class=cF0> needs to do doc operations on </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l295"><span class=cF4>MessagePost</span></a><span class=cF0>() messages for mouse_hard. Already works for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l47"><span class=cF4>MouseSet</span></a><span class=cF0>()?
|
||||
<a name="l293"></a>
|
||||
|
@ -335,7 +335,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l308"></a>
|
||||
<a name="l309"></a>* Compiler: &=, |= can overflow with Bts Btr on small data types?
|
||||
<a name="l310"></a>
|
||||
<a name="l311"></a>* Implement </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3185"><span class=cF4>RS_ATTR_FIXED</span></a><span class=cF0> fixed pos files?
|
||||
<a name="l311"></a>* Implement </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3194"><span class=cF4>RS_ATTR_FIXED</span></a><span class=cF0> fixed pos files?
|
||||
<a name="l312"></a>
|
||||
<a name="l313"></a>* SIMD in </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="l314"></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#l3762"><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#l3771"><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#l3968"><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#l3977"><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()
|
||||
|
@ -433,7 +433,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l406"></a>
|
||||
<a name="l407"></a>* Make sure queue links safe in one direction. Task </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l50"><span class=cF4>QueueInsert</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l53"><span class=cF4>QueueRemove</span></a><span class=cF0> for multicore cycling forward through tasks.
|
||||
<a name="l408"></a>
|
||||
<a name="l409"></a>* Test removable media id and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3183"><span class=cF4>RS_ATTR_RESIDENT</span></a><span class=cF0>. </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l280"><span class=cF4>Touch</span></a><span class=cF0>("","+T");
|
||||
<a name="l409"></a>* Test removable media id and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3192"><span class=cF4>RS_ATTR_RESIDENT</span></a><span class=cF0>. </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l280"><span class=cF4>Touch</span></a><span class=cF0>("","+T");
|
||||
<a name="l410"></a>
|
||||
<a name="l411"></a>
|
||||
<a name="l412"></a></span><span class=cF5> Uncategorized</span><span class=cF0>
|
||||
|
@ -453,7 +453,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l426"></a>* Might make CSprite flood fill operate on a separate bitmap
|
||||
<a name="l427"></a>and blotted at the end.
|
||||
<a name="l428"></a>* <CTRL-r> delete subsprite in menu near others
|
||||
<a name="l429"></a>* make better heapwalk, do something with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3465"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
|
||||
<a name="l429"></a>* make better heapwalk, do something with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
|
||||
<a name="l430"></a>
|
||||
<a name="l431"></a>* static var off of data heap.
|
||||
<a name="l432"></a>* could add "const" to not set CCF_NOT_CONST flag for trig, etc.
|
||||
|
|
|
@ -37,7 +37,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l10"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
||||
<a name="l11"></a> </span><span class=cF1>U8</span><span class=cF0> *ptr;
|
||||
<a name="l12"></a>
|
||||
<a name="l13"></a> </span><span class=cF5>LineRep1</span><span class=cF0>(tmpde); </span><span class=cF2>//We have </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3195"><span class=cF4>CDirEntry</span></a><span class=cF2>.fullname</span><span class=cF0>
|
||||
<a name="l13"></a> </span><span class=cF5>LineRep1</span><span class=cF0>(tmpde); </span><span class=cF2>//We have </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF2>.fullname</span><span class=cF0>
|
||||
<a name="l14"></a> </span><span class=cF5>LineRep2</span><span class=cF0>(</span><span class=cF5>DocPut</span><span class=cF0>, tmpde);
|
||||
<a name="l15"></a> </span><span class=cF6>"$GREEN$***************$FG$\n"</span><span class=cF0>;
|
||||
<a name="l16"></a> ptr = </span><span class=cF5>DirTreeSerialize</span><span class=cF0>(tmpde, &size);
|
||||
|
@ -45,7 +45,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l18"></a> </span><span class=cF5>D</span><span class=cF0>(ptr, size);
|
||||
<a name="l19"></a> </span><span class=cF6>"$GREEN$***************:%7d$FG$\n"</span><span class=cF0>, size;
|
||||
<a name="l20"></a> tmpde = </span><span class=cF5>DirTreeUnserialize</span><span class=cF0>(ptr);
|
||||
<a name="l21"></a> </span><span class=cF5>LineRep2</span><span class=cF0>(</span><span class=cF5>DocPut</span><span class=cF0>, tmpde); </span><span class=cF2>//We don't have </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3195"><span class=cF4>CDirEntry</span></a><span class=cF2>.fullname</span><span class=cF0>
|
||||
<a name="l21"></a> </span><span class=cF5>LineRep2</span><span class=cF0>(</span><span class=cF5>DocPut</span><span class=cF0>, tmpde); </span><span class=cF2>//We don't have </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF2>.fullname</span><span class=cF0>
|
||||
<a name="l22"></a> </span><span class=cF5>DirTreeDel</span><span class=cF0>(tmpde);
|
||||
<a name="l23"></a>}
|
||||
<a name="l24"></a>
|
||||
|
|
|
@ -70,7 +70,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l41"></a>
|
||||
<a name="l42"></a>
|
||||
<a name="l43"></a></span><span class=cF2>//These are indexed by color #.</span><span class=cF0>
|
||||
<a name="l44"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3611"><span class=cF4>COLORS</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l44"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3620"><span class=cF4>COLORS</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l45"></a>
|
||||
<a name="l46"></a></span><span class=cF1>U8</span><span class=cF0> *tiles1[</span><span class=cFE>16</span><span class=cF0>]={</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cFA><7></span><span class=cF0> , </span><span class=cFA><5></span><span class=cF0> , </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cFA><6></span><span class=cF0> , </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>};
|
||||
<a name="l47"></a>
|
||||
|
@ -141,7 +141,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l112"></a>
|
||||
<a name="l113"></a> </span><span class=cF2>//You could make it much more efficient</span><span class=cF0>
|
||||
<a name="l114"></a> </span><span class=cF2>//if you did it like </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/BigGuns.CC.html#l1"><span class=cF4>::/Demo/Games/BigGuns.CC</span></a><span class=cF0>
|
||||
<a name="l115"></a> </span><span class=cF2>//with a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4290"><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#l4299"><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 < SCREEN_HEIGHT / </span><span class=cFE>2</span><span class=cF0>; y++)
|
||||
<a name="l118"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
|
|
|
@ -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>->pix_width >> </span><span class=cFE>1</span><span class=cF0>, y = </span><span class=cF5>Fs</span><span class=cF0>->pix_height >> </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#l3968"><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>->pix_width >> </span><span class=cFE>1</span><span class=cF0>, y = </span><span class=cF5>Fs</span><span class=cF0>->pix_height >> </span><span class=cFE>1</span><span class=cF0>, </span><span class=cF2>//Fs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> struct.</span><span class=cF0>
|
||||
<a name="l38"></a> x_last = x;
|
||||
<a name="l39"></a>
|
||||
<a name="l40"></a> </span><span class=cF5>AutoComplete</span><span class=cF0>;
|
||||
|
|
|
@ -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>(&old_grid, &</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#l3717"><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#l3726"><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;
|
||||
|
|
|
@ -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>->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>->text_attr = </span><span class=cF3>BLACK</span><span class=cF0> << </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#l3968"><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>->text_attr = </span><span class=cF3>BLACK</span><span class=cF0> << </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
|
||||
<a name="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>;
|
||||
|
|
|
@ -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#l3762"><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#l3771"><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>
|
||||
|
|
|
@ -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#l4290"><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#l4299"><span class=cF4>CDC</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc</span></a><span class=cF2>, while the other</span><span class=cF0>
|
||||
<a name="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>
|
||||
|
|
|
@ -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>->text_attr = </span><span class=cF3>BLACK</span><span class=cF0> << </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#l3968"><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>->text_attr = </span><span class=cF3>BLACK</span><span class=cF0> << </span><span class=cFE>4</span><span class=cF0> + </span><span class=cF3>WHITE</span><span class=cF0>; </span><span class=cF2>//Current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF2> is Fs segment register.</span><span class=cF0>
|
||||
<a name="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 < </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>
|
||||
|
|
|
@ -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>->draw_it = &</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#l3659"><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#l3668"><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#l3659"><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#l4210"><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#l3668"><span class=cF4>kbd.down_bitmap2</span></a><span class=cF2> is indexed with the</span><span class=cF0>
|
||||
<a name="l30"></a> </span><span class=cF2>//distinct scan code. See </span><span class=cF4><u>Char</u></span><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="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>
|
||||
|
|
|
@ -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>"Use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3872"><span class=cF4>message_code</span></a><span class=cF6> defines in your programs instead of hardcoded nums.\n"</span><span class=cF0>
|
||||
<a name="l4"></a> </span><span class=cF6>"Use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF6> defines in your programs instead of hardcoded nums.\n"</span><span class=cF0>
|
||||
<a name="l5"></a> </span><span class=cF6>"<ESC> to Exit\n"</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 <CTRL-SHIFT-L> and "Insert </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4122"><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>".</span><span class=cF0>
|
||||
<a name="l26"></a></span><span class=cF2>// Press <CTRL-SHIFT-L> and "Insert </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2>/</span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>ScanCode</span></a><span class=cF2>".</span><span class=cF0>
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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#l3872"><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#l3881"><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:
|
||||
|
|
|
@ -49,7 +49,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l22"></a>incredibly efficient. You just have to declare the desired file size when you create it with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l9"><span class=cF4>FOpen</span></a><span class=cF0>() and cannot change it.
|
||||
<a name="l23"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Disk/DataBase.CC.html#l1"><span class=cF4>::/Demo/Disk/DataBase.CC</span></a><span class=cF0>.
|
||||
<a name="l24"></a>
|
||||
<a name="l25"></a>If you like, you are encouraged to to do raw </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l87"><span class=cF4>BlkWrite</span></a><span class=cF0>() directly on a drive. Just get a pointer to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3367"><span class=cF4>CDrive</span></a><span class=cF0>
|
||||
<a name="l25"></a>If you like, you are encouraged to to do raw </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l87"><span class=cF4>BlkWrite</span></a><span class=cF0>() directly on a drive. Just get a pointer to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3376"><span class=cF4>CDrive</span></a><span class=cF0>
|
||||
<a name="l26"></a>with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l211"><span class=cF4>Letter2Drive</span></a><span class=cF0>() and you are on your way! Your computer is supposed to be a fun toy! You can make an entire partition
|
||||
<a name="l27"></a>used for a database, or invent a file system.
|
||||
<a name="l28"></a>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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><CTRL-c></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#l4122"><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#l4131"><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><SHIFT-ESC></span><span class=cF0>.
|
||||
|
@ -39,19 +39,19 @@ body {background-color:#fef1f0;}
|
|||
<a name="l12"></a>Technically, </span><span class=cF2><CTRL-ALT-a></span><span class=cF0> are </span><span class=cF4><u>screen codes</u></span><span class=cF0>.
|
||||
<a name="l13"></a>
|
||||
<a name="l14"></a>A </span><span class=cF2>Key</span><span class=cF0> is typically specified with a scan code. ZealOS scan codes contain the key value in the lowest </span><span class=cF2>U8</span><span class=cF0>, and flags in the
|
||||
<a name="l15"></a>upper 3 bytes. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4176"><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#l4210"><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#l4185"><span class=cF4>Scan Code Flags</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF0>.
|
||||
<a name="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#l4159"><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#l4168"><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#l4159"><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#l4168"><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><CTRL-SHIFT-l></span><span class=cF0> and "Insert ASCII/ScanCode".
|
||||
<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#l3659"><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#l3668"><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>
|
||||
|
|
|
@ -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,674
|
||||
<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,700
|
||||
<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.
|
||||
|
|
|
@ -297,7 +297,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l270"></a>off-of other task's heaps, or make an independent heap with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>() for an example.
|
||||
<a name="l271"></a>
|
||||
<a name="l272"></a>* The stack does not grow because virtual mem is not used. It's recommended to allocate large local vars from the heap. Yo
|
||||
<a name="l273"></a>u can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3535"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l129"><span class=cF4>CallStackGrow</span></a><span class=cF0>(), but
|
||||
<a name="l273"></a>u can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l129"><span class=cF4>CallStackGrow</span></a><span class=cF0>(), but
|
||||
<a name="l274"></a>it's odd. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/StackGrow.CC.html#l1"><span class=cF4>::/Demo/StackGrow.CC</span></a><span class=cF0>.
|
||||
<a name="l275"></a>
|
||||
<a name="l276"></a>* Only one base class is allowed.
|
||||
|
|
|
@ -33,7 +33,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l6"></a>EMU</span><span class=cF0> or </span><span class=cF2>VirtualBox</span><span class=cF0>. It is independent and stands alone. 100% of the src code is including on all distro's, from the kernel to
|
||||
<a name="l7"></a>the compiler to the boot loaders! It is public domain, not GPL.
|
||||
<a name="l8"></a>
|
||||
<a name="l9"></a>*) </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2958"><span class=cF4>ATA Reg and Cmd Definitions</span></a><span class=cF0> are originally from Linux. Later, Terry got the spec.
|
||||
<a name="l9"></a>*) </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l2967"><span class=cF4>ATA Reg and Cmd Definitions</span></a><span class=cF0> are originally from Linux. Later, Terry got the spec.
|
||||
<a name="l10"></a>
|
||||
<a name="l11"></a>*) The heap algorithm, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l1"><span class=cF4>::/Kernel/Memory/MAllocFree.CC</span></a><span class=cF0>, is adapted from one Terry saw at Ticketmaster when he worked on their
|
||||
<a name="l12"></a>VAX operating system.
|
||||
|
|
|
@ -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#l3762"><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#l3968"><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#l3771"><span class=cF4>CCtrl</span></a><span class=cF0> structure in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0> queue. See </span><span class=cF4>
|
||||
<a name="l2"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Slider.CC.html#l1"><span class=cF4>::/Demo/Graphics/Slider.CC</span></a><span class=cF0>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/ScrollBars.CC.html#l1"><span class=cF4>::/Demo/Graphics/ScrollBars.CC</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/WallPaper.CC.html#l162"><span class=cF4>TermBttnNew</span></a><span class=cF0>. There is a template-code ctrl generator, if you
|
||||
<a name="l3"></a>press </span><span class=cF2><CTRL-SHIFT-L></span><span class=cF0>.
|
||||
</span></pre></body>
|
||||
|
|
|
@ -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><CTRL-ALT-d></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#l4073"><span class=cF4>_RIP</span></a><span class=cF0>);
|
||||
<a name="l5"></a>dump, record the label+offset and unassemble, </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4082"><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>(&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>("FunName") 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#l4073"><span class=cF4>_RIP</span></a><span class=cF0>-16);
|
||||
<a name="l7"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(&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>("FunName") to unassemble a function. </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/UAsm.CC.html#l770"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4082"><span class=cF4>_RIP</span></a><span class=cF0>-16);
|
||||
<a name="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>&</span><span class=cF0> before functions as in </span><span class=cF2>&Print+0x10</span><span class=cF0>.
|
||||
|
|
|
@ -77,16 +77,16 @@ body {background-color:#fef1f0;}
|
|||
<a name="l50"></a>
|
||||
<a name="l51"></a></span><span class=cF2>'m'</span><span class=cF0>
|
||||
<a name="l52"></a> Make CD/DVD ISO.C file. This creates a </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> ISO file image of the dir the cursor is on. The name of the ISO file is </span><span class=cF2>
|
||||
<a name="l53"></a> "::/Tmp/CDDVD.ISO.C"</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3409"><span class=cF4>blkdev.default_iso_c_filename</span></a><span class=cF0> and can be redefined in your start-up scripts. You may wish to place it
|
||||
<a name="l53"></a> "::/Tmp/CDDVD.ISO.C"</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><span class=cF4>blkdev.default_iso_c_filename</span></a><span class=cF0> and can be redefined in your start-up scripts. You may wish to place it
|
||||
<a name="l54"></a> on a different drive.
|
||||
<a name="l55"></a>
|
||||
<a name="l56"></a></span><span class=cF2>'B'</span><span class=cF0>
|
||||
<a name="l57"></a> Burn CD/DVD ISO file. This burns a CD/DVD using the image file, </span><span class=cF2>"::/Tmp/CDDVD.ISO"</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3409"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0> to the drive
|
||||
<a name="l57"></a> Burn CD/DVD ISO file. This burns a CD/DVD using the image file, </span><span class=cF2>"::/Tmp/CDDVD.ISO"</span><span class=cF0> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0> to the drive
|
||||
<a name="l58"></a> the cursor is on.
|
||||
<a name="l59"></a>
|
||||
<a name="l60"></a>
|
||||
<a name="l61"></a></span><span class=cF5>Instructions on Using CD/DVD's</span><span class=cF0>
|
||||
<a name="l62"></a> If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0> to define your CD/DVD drive.
|
||||
<a name="l62"></a> If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0> to define your CD/DVD drive.
|
||||
<a name="l63"></a> Place a CD/DVD in the drive and press </span><span class=cF2>'c'</span><span class=cF0> when on top of the CD/DVD drive letter to mount the drive. It will call </span><span class=cF4>
|
||||
<a name="l64"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l269"><span class=cF4>DiskChange</span></a><span class=cF0>(), the ZealOS cmd to mount removable media.
|
||||
<a name="l65"></a>
|
||||
|
@ -94,8 +94,8 @@ body {background-color:#fef1f0;}
|
|||
<a name="l67"></a></span><span class=cF5>Instructions on Burning CD/DVD's</span><span class=cF0>
|
||||
<a name="l68"></a> Create a temporary dir to hold files and copy files into the holding dir. Make an ISO image of the dir by pressing </span><span class=cF2>'M'</span><span class=cF0> when
|
||||
<a name="l69"></a> on top of the dir. Press </span><span class=cF2>'B'</span><span class=cF0> when on top of the CD/DVD ROM drive to burn the ISO, </span><span class=cF2>"::/Tmp/CDDVD.ISO"</span><span class=cF0> </span><span class=cF4>
|
||||
<a name="l70"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3409"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0>, to disk. If you have not recompiled </span><span class=cF2>Kernel</span><span class=cF0> and defined your CD/DVD drive, exit the FileMgr and
|
||||
<a name="l71"></a> use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>.
|
||||
<a name="l70"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3418"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0>, to disk. If you have not recompiled </span><span class=cF2>Kernel</span><span class=cF0> and defined your CD/DVD drive, exit the FileMgr and
|
||||
<a name="l71"></a> use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>.
|
||||
<a name="l72"></a> </span><span class=cF4>
|
||||
<a name="l73"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Misc/DoDistro.CC.html#l1"><span class=cF4>Making Your Own Distro</span></a><span class=cF0>
|
||||
<a name="l74"></a> </span></pre></body>
|
||||
|
|
|
@ -39,18 +39,18 @@ body {background-color:#fef1f0;}
|
|||
<a name="l12"></a>
|
||||
<a name="l13"></a>Flags are either text or int values.
|
||||
<a name="l14"></a>
|
||||
<a name="l15"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3237"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> </span><span class=cF2>+r</span><span class=cF0> Recurse
|
||||
<a name="l16"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3246"><span class=cF4>FUF_SINGLE</span></a><span class=cF0> </span><span class=cF2>+s</span><span class=cF0> Single File (Optimization for one file in mask.)
|
||||
<a name="l17"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3257"><span class=cF4>FUF_FLATTEN_TREE</span></a><span class=cF0> </span><span class=cF2>+f</span><span class=cF0> use with '</span><span class=cF2>+F</span><span class=cF0>'. Just use </span><span class=cF2>+F</span><span class=cF0>, probably.
|
||||
<a name="l18"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3247"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF0> </span><span class=cF2>+D</span><span class=cF0> just directories
|
||||
<a name="l19"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3248"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0> </span><span class=cF2>+F</span><span class=cF0> just files (Flattens trees)
|
||||
<a name="l20"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3255"><span class=cF4>FUF_CLUS_ORDER</span></a><span class=cF0> </span><span class=cF2> +O</span><span class=cF0> sort by clus (move head one direction)
|
||||
<a name="l21"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3249"><span class=cF4>FUF_JUST_TXT</span></a><span class=cF0> </span><span class=cF2>+T</span><span class=cF0> just text files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3008"><span class=cF4>FILEMASK_TXT</span></a><span class=cF0>
|
||||
<a name="l22"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3250"><span class=cF4>FUF_JUST_DD</span></a><span class=cF0> </span><span class=cF2>+$</span><span class=cF0> just </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3007"><span class=cF4>FILEMASK_DD</span></a><span class=cF0>
|
||||
<a name="l23"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3251"><span class=cF4>FUF_JUST_SRC</span></a><span class=cF0> </span><span class=cF2>+S</span><span class=cF0> just src files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3006"><span class=cF4>FILEMASK_SRC</span></a><span class=cF0>
|
||||
<a name="l24"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3252"><span class=cF4>FUF_JUST_AOT</span></a><span class=cF0> </span><span class=cF2>+A</span><span class=cF0> just aot files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3005"><span class=cF4>FILEMASK_AOT</span></a><span class=cF0>
|
||||
<a name="l25"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3253"><span class=cF4>FUF_JUST_JIT</span></a><span class=cF0> </span><span class=cF2>+J</span><span class=cF0> just jit files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3004"><span class=cF4>FILEMASK_JIT</span></a><span class=cF0>
|
||||
<a name="l26"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3254"><span class=cF4>FUF_JUST_GR</span></a><span class=cF0> </span><span class=cF2>+G</span><span class=cF0> just graphic files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3009"><span class=cF4>FILEMASK_GR</span></a><span class=cF0>
|
||||
<a name="l15"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3246"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> </span><span class=cF2>+r</span><span class=cF0> Recurse
|
||||
<a name="l16"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3255"><span class=cF4>FUF_SINGLE</span></a><span class=cF0> </span><span class=cF2>+s</span><span class=cF0> Single File (Optimization for one file in mask.)
|
||||
<a name="l17"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3266"><span class=cF4>FUF_FLATTEN_TREE</span></a><span class=cF0> </span><span class=cF2>+f</span><span class=cF0> use with '</span><span class=cF2>+F</span><span class=cF0>'. Just use </span><span class=cF2>+F</span><span class=cF0>, probably.
|
||||
<a name="l18"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF0> </span><span class=cF2>+D</span><span class=cF0> just directories
|
||||
<a name="l19"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3257"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0> </span><span class=cF2>+F</span><span class=cF0> just files (Flattens trees)
|
||||
<a name="l20"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3264"><span class=cF4>FUF_CLUS_ORDER</span></a><span class=cF0> </span><span class=cF2> +O</span><span class=cF0> sort by clus (move head one direction)
|
||||
<a name="l21"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3258"><span class=cF4>FUF_JUST_TXT</span></a><span class=cF0> </span><span class=cF2>+T</span><span class=cF0> just text files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3017"><span class=cF4>FILEMASK_TXT</span></a><span class=cF0>
|
||||
<a name="l22"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3259"><span class=cF4>FUF_JUST_DD</span></a><span class=cF0> </span><span class=cF2>+$</span><span class=cF0> just </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3016"><span class=cF4>FILEMASK_DD</span></a><span class=cF0>
|
||||
<a name="l23"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3260"><span class=cF4>FUF_JUST_SRC</span></a><span class=cF0> </span><span class=cF2>+S</span><span class=cF0> just src files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3015"><span class=cF4>FILEMASK_SRC</span></a><span class=cF0>
|
||||
<a name="l24"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3261"><span class=cF4>FUF_JUST_AOT</span></a><span class=cF0> </span><span class=cF2>+A</span><span class=cF0> just aot files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3014"><span class=cF4>FILEMASK_AOT</span></a><span class=cF0>
|
||||
<a name="l25"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3262"><span class=cF4>FUF_JUST_JIT</span></a><span class=cF0> </span><span class=cF2>+J</span><span class=cF0> just jit files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3013"><span class=cF4>FILEMASK_JIT</span></a><span class=cF0>
|
||||
<a name="l26"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3263"><span class=cF4>FUF_JUST_GR</span></a><span class=cF0> </span><span class=cF2>+G</span><span class=cF0> just graphic files : </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3018"><span class=cF4>FILEMASK_GR</span></a><span class=cF0>
|
||||
<a name="l27"></a>
|
||||
<a name="l28"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l212"><span class=cF4>ST_FILE_UTIL_FLAGS</span></a><span class=cF0> when used in calling program taking text flags.
|
||||
</span></pre></body>
|
||||
|
|
|
@ -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#l4290"><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#l4299"><span class=cF4>CDC</span></a><span class=cF0>s (device contexts) are a data type for controlling graphics on the screen or graphics in mem. The device context
|
||||
<a name="l50"></a>structure has thick and color. You use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l182"><span class=cF4>DCAlias</span></a><span class=cF0>() to create your own structure, with its own color and thick. Free it with </span><span class=cF4>
|
||||
<a name="l51"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l230"><span class=cF4>DCDel</span></a><span class=cF0>() when finished.
|
||||
<a name="l52"></a>
|
||||
|
@ -96,21 +96,21 @@ body {background-color:#fef1f0;}
|
|||
<a name="l69"></a>cursor location when you pressed </span><span class=cF2><CTRL-r></span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2><CTRL-r
|
||||
<a name="l70"></a>></span><span class=cF0> again.
|
||||
<a name="l71"></a>
|
||||
<a name="l72"></a>* Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4264"><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#l4290"><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#l4268"><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#l4264"><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#l4273"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l236"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrMath.CC.html#l259"><span class=cF4>DCSymmetry3Set</span></a><span class=cF0>(). This will plot a mirror image in addition
|
||||
<a name="l73"></a>to the primary image. Set </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4277"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4273"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> to be set at the same time.
|
||||
<a name="l74"></a> Note: You can only have one symmetry active at a time including in </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0>s.
|
||||
<a name="l75"></a>
|
||||
<a name="l76"></a>* Use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l205"><span class=cF4>DCNew</span></a><span class=cF0>() to create a mem bitmap which can be used to work off-screen and which can be </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>ed onto the screen. If you
|
||||
<a name="l77"></a>set </span><span class=cF2>brush</span><span class=cF0> member of </span><span class=cF2>CDC</span><span class=cF0> to another </span><span class=cF2>CDC</span><span class=cF0>, all the graphic routines will </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>() the brush instead of </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l61"><span class=cF4>GrPlot</span></a><span class=cF0>(). See </span><span class=cF4>
|
||||
<a name="l78"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Blot.CC.html#l1"><span class=cF4>::/Demo/Graphics/Blot.CC</span></a><span class=cF0>.
|
||||
<a name="l79"></a>
|
||||
<a name="l80"></a>* There are a few </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3591"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc->color</span><span class=cF0> member var which is a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3632"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><span class=cF4>
|
||||
<a name="l81"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3593"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> is special. It counts the num of pixs drawn on non-background locations. Using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3593"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with vector </span><span class=cF4>
|
||||
<a name="l80"></a>* There are a few </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3600"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc->color</span><span class=cF0> member var which is a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><span class=cF4>
|
||||
<a name="l81"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> is special. It counts the num of pixs drawn on non-background locations. Using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with vector </span><span class=cF4>
|
||||
<a name="l82"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0>'s is tricky because overlapping pixs from lines in the </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> reg as collisions. You can either work with a nonzero
|
||||
<a name="l83"></a>count or convert your </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> to a bitmap if your subelements draw on top of each other. Be sure to set </span><span class=cF4>->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#l3593"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Collision.CC.html#l1"><span class=cF4>::/Demo/Graphics/Collision.CC</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
|
||||
<a name="l84"></a>using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3602"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Collision.CC.html#l1"><span class=cF4>::/Demo/Graphics/Collision.CC</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
|
||||
<a name="l85"></a>
|
||||
<a name="l86"></a>* The </span><span class=cF4>->dither_probability_u16</span><span class=cF0> member of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4290"><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>->dither_probability_u16</span><span class=cF0> member of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4299"><span class=cF4>CDC</span></a><span class=cF0> is a </span><span class=cF2>U16</span><span class=cF0> used to statistically sel between two colors to get something resembling
|
||||
<a name="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>
|
||||
|
|
|
@ -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#l3968"><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#l3977"><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#l4087"><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#l4096"><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>
|
||||
|
|
|
@ -25,6 +25,6 @@ body {background-color:#fef1f0;}
|
|||
</head>
|
||||
<body>
|
||||
<pre style="font-family:monospace;font-size:12pt">
|
||||
<a name="l1"></a><span class=cF0>Recompile the kernel with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3465"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>=TRUE if you want more heap debugging. You are on your own.
|
||||
<a name="l1"></a><span class=cF0>Recompile the kernel with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>=TRUE if you want more heap debugging. You are on your own.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -43,13 +43,13 @@ body {background-color:#fef1f0;}
|
|||
<a name="l16"></a>you only need a couple gigabytes for your ZealOS partitions.
|
||||
<a name="l17"></a>
|
||||
<a name="l18"></a>1)
|
||||
<a name="l19"></a></span><span class=cF4> </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>() use if the drive is partitioned.
|
||||
<a name="l19"></a></span><span class=cF4> </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>() use if the drive is partitioned.
|
||||
<a name="l20"></a> This command mounts a drive making it accessible. For simplicity, sel </span><span class=cF2>'C'</span><span class=cF0> as the first drive letter for your hard drive.
|
||||
<a name="l21"></a> The first partition will be </span><span class=cF2>'C'</span><span class=cF0>, second, </span><span class=cF2>'D'</span><span class=cF0>, etc. ZealOS needs only 1 number to utilize a hard drive -- port.
|
||||
<a name="l22"></a> </span><span class=cF4>
|
||||
<a name="l23"></a> </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/DiskPart.CC.html#l13"><span class=cF4>DiskPart</span></a><span class=cF0>(</span><span class=cF2>'C'</span><span class=cF0>) use if drive is not partitioned
|
||||
<a name="l24"></a>
|
||||
<a name="l25"></a> This will perform a special </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>() automatically.
|
||||
<a name="l25"></a> This will perform a special </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>() automatically.
|
||||
<a name="l26"></a>
|
||||
<a name="l27"></a> <blink>WARNING:</blink> This command erases everything on a hard drive. It repartitions a whole drive and formats the partitions. Th
|
||||
<a name="l28"></a> is command should be skipped if you already have your hard drive partitioned.
|
||||
|
@ -69,7 +69,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l42"></a> place of </span><span class=cF2>'D'</span><span class=cF0>.
|
||||
<a name="l43"></a>
|
||||
<a name="l44"></a>4) </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l25"><span class=cF4>BootHDIns</span></a><span class=cF0>(</span><span class=cF2>'D'</span><span class=cF0>)
|
||||
<a name="l45"></a> This command recompiles the source code on a drive and writes to the <u>drive's</u> boot record. You'll need to reenter the </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>
|
||||
<a name="l45"></a> This command recompiles the source code on a drive and writes to the <u>drive's</u> boot record. You'll need to reenter the </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>
|
||||
<a name="l46"></a> information so it can be stored in the kernel.
|
||||
<a name="l47"></a>
|
||||
<a name="l48"></a>5) Use Linux's Grub or ZealOS' </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Boot/BootMHDIns.CC.html#l76"><span class=cF4>BootMHDIns</span></a><span class=cF0>(</span><span class=cF2>'D'</span><span class=cF0>)
|
||||
|
|
|
@ -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#l3844"><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#l3837"><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#l3853"><span class=cF4>CJob</span></a><span class=cF0> nodes are one of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>five types</span></a><span class=cF0>. User applications deal with text or messages. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Job.CC.html#l321"><span class=cF4>JobRunOne</span></a><span class=cF0>() will call a function, spawn a
|
||||
<a name="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>
|
||||
|
|
|
@ -36,7 +36,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l9"></a> Therefore, ZealOS keeps all code in the lowest 2Gig memory addresses including what would normally be called "the kernel".
|
||||
<a name="l10"></a>Two Gig is plenty for code, don't worry.
|
||||
<a name="l11"></a>
|
||||
<a name="l12"></a>You can create new, independent heaps using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). Then, use the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><span class=cF4>CHeapCtrl</span></a><span class=cF0> as the 2nd arg to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>()
|
||||
<a name="l12"></a>You can create new, independent heaps using </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). Then, use the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF0> as the 2nd arg to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>()
|
||||
<a name="l13"></a>for an example.
|
||||
<a name="l14"></a>
|
||||
<a name="l15"></a>Memory alloced by a task will be freed when the task is killed. The </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is a task that never dies. His memory is like
|
||||
|
@ -54,8 +54,8 @@ body {background-color:#fef1f0;}
|
|||
<a name="l27"></a>
|
||||
<a name="l28"></a></span><span class=cF5> Single System-wide Memory Map
|
||||
<a name="l29"></a>
|
||||
<a name="l30"></a></span><span class=cF2> 0x0000007C00- 0x0000036AEF</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#l4468"><span class=cF4>BOOT_RAM_BASE</span></a><span class=cF0>.
|
||||
<a name="l30"></a></span><span class=cF2> 0x0000007C00- 0x0000036B6F</span><span class=cF0>
|
||||
<a name="l31"></a> Kernel module, placed here by the boot-loader, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4477"><span class=cF4>BOOT_RAM_BASE</span></a><span class=cF0>.
|
||||
<a name="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> & </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#l4111"><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#l4120"><span class=cF4>CSysFixedArea</span></a><span class=cF0> for misc.
|
||||
<a name="l40"></a></span><span class=cF2> 0x000010C000- 0x007FFFFFFF</span><span class=cF0> Code Heap mem.
|
||||
<a name="l41"></a>
|
||||
<a name="l42"></a></span><span class=cF2> 0x00E0000000- 0x00FFFFFFFF</span><span class=cF0>
|
||||
|
|
|
@ -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#l3886"><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#l4122"><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#l3873"><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#l3873"><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#l3895"><span class=cF4>MESSAGE_KEY_DOWN_UP</span></a><span class=cF0>. The second arg is the
|
||||
<a name="l26"></a>message </span><span class=cF2>arg1</span><span class=cF0> value which is </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF0> of the key in the case of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>. The third arg is the message </span><span class=cF2>arg2</span><span class=cF0> value which
|
||||
<a name="l27"></a>is the </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF0> of the key in the case of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>.
|
||||
<a name="l28"></a>
|
||||
<a name="l29"></a>Press </span><span class=cF2><CTRL-SHIFT-l></span><span class=cF0> and "Insert ASCII/ScanCode".
|
||||
<a name="l30"></a>
|
||||
|
|
|
@ -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#l3871"><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#l3880"><span class=cF4>Message Codes</span></a><span class=cF0>.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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#l3695"><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#l3695"><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#l3704"><span class=cF4>mouse.pos_text.x</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3704"><span class=cF4>mouse.pos_text.y</span></a><span class=cF0> are the text column and row. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Games/Maze.CC.html#l1"><span class=cF4>::/Demo/Games/Maze.CC</span></a><span class=cF0>.
|
||||
<a name="l5"></a>
|
||||
<a name="l6"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3695"><span class=cF4>CMouseStateGlobals</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3675"><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#l3704"><span class=cF4>CMouseStateGlobals</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3684"><span class=cF4>CMouseHardStateGlobals</span></a><span class=cF0>.
|
||||
<a name="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>
|
||||
|
|
|
@ -25,7 +25,7 @@ body {background-color:#fef1f0;}
|
|||
</head>
|
||||
<body>
|
||||
<pre style="font-family:monospace;font-size:12pt">
|
||||
<a name="l1"></a><span class=cF0>The word </span><span class=cF2>Pag</span><span class=cF0> refers to an arbitrilly created </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3525"><span class=cF4>MEM_PAG_SIZE</span></a><span class=cF0> unit of heap allocation. ZealOS does not alter the CPU page tables
|
||||
<a name="l1"></a><span class=cF0>The word </span><span class=cF2>Pag</span><span class=cF0> refers to an arbitrilly created </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3534"><span class=cF4>MEM_PAG_SIZE</span></a><span class=cF0> unit of heap allocation. ZealOS does not alter the CPU page tables
|
||||
<a name="l2"></a>after setting them up at boot in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/PageTables.CC.html#l6"><span class=cF4>SYS_INIT_PAGE_TABLES</span></a><span class=cF0>, so the CPU hardware page size is rarely important.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -35,7 +35,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l8"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAddDev.CC.html#l195"><span class=cF4>DriveEnable</span></a><span class=cF0>(OFF), or they will generate error messages. </span><span class=cF2>FAT32</span><span class=cF0> involves a long and short name for each file.
|
||||
<a name="l9"></a>
|
||||
<a name="l10"></a>* The stack does not grow because virtual mem is not used. It is recommended that you allocate large local vars from the
|
||||
<a name="l11"></a>heap. You can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3535"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
|
||||
<a name="l11"></a>heap. You can change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
|
||||
<a name="l12"></a>
|
||||
<a name="l13"></a>* The syntax highlighting occassionally glitches. The compiler doesn't.
|
||||
<a name="l14"></a>
|
||||
|
|
|
@ -39,7 +39,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l12"></a>
|
||||
<a name="l13"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDirEntry</span><span class=cF0> </span><span class=cF2>//64-byte fixed-size</span><span class=cF0>
|
||||
<a name="l14"></a>{
|
||||
<a name="l15"></a> </span><span class=cF9>U16</span><span class=cF0> attr; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3178"><span class=cF4>RS_ATTR_DIR</span></a><span class=cF2>.</span><span class=cF0> </span><span class=cF2>Terry wanted to change these.</span><span class=cF0>
|
||||
<a name="l15"></a> </span><span class=cF9>U16</span><span class=cF0> attr; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3187"><span class=cF4>RS_ATTR_DIR</span></a><span class=cF2>.</span><span class=cF0> </span><span class=cF2>Terry wanted to change these.</span><span class=cF0>
|
||||
<a name="l16"></a> </span><span class=cF1>U8</span><span class=cF0> name[</span><span class=cF3>CDIR_FILENAME_LEN</span><span class=cF0>]; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/StrA.CC.html#l336"><span class=cF4>char_bmp_filename</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskStrA.CC.html#l278"><span class=cF4>FileNameCheck</span></a><span class=cF0>
|
||||
<a name="l17"></a> </span><span class=cF9>I64</span><span class=cF0> clus; </span><span class=cF7>(blk)</span><span class=cF0> </span><span class=cF2>//One sector per clus.</span><span class=cF0>
|
||||
<a name="l18"></a> </span><span class=cF9>I64</span><span class=cF0> size; </span><span class=cF2>//In bytes</span><span class=cF0>
|
||||
|
|
|
@ -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#l4210"><span class=cF4>Scan Codes</span></a><span class=cF0>, the user would press </span><span class=cF2><CTRL-m></span><span class=cF0> to access his </span><span class=cF2>Personal Menu</span><span class=cF0> to trigger his
|
||||
<a name="l5"></a>If you had a remote term and sent key </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4219"><span class=cF4>Scan Codes</span></a><span class=cF0>, the user would press </span><span class=cF2><CTRL-m></span><span class=cF0> to access his </span><span class=cF2>Personal Menu</span><span class=cF0> to trigger his
|
||||
<a name="l6"></a>macros. However, the local </span><a href="https://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.
|
||||
|
|
|
@ -29,8 +29,8 @@ body {background-color:#fef1f0;}
|
|||
<a name="l2"></a>code takes care of plotting text to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0>.
|
||||
<a name="l3"></a>
|
||||
<a name="l4"></a>Bits 0-7 8-Bit ASCII Screen Code
|
||||
<a name="l5"></a>Bits 8-11 Foreground </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3607"><span class=cF4>color</span></a><span class=cF0>
|
||||
<a name="l6"></a>Bits 12-15 Background </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3607"><span class=cF4>color</span></a><span class=cF0>
|
||||
<a name="l5"></a>Bits 8-11 Foreground </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3616"><span class=cF4>color</span></a><span class=cF0>
|
||||
<a name="l6"></a>Bits 12-15 Background </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3616"><span class=cF4>color</span></a><span class=cF0>
|
||||
<a name="l7"></a>Bits 16-20 Signed X pos shift val
|
||||
<a name="l8"></a>Bits 21-25 Signed Y pos shift val
|
||||
<a name="l9"></a>Bit 28 </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1030"><span class=cF4>Blink</span></a><span class=cF0>
|
||||
|
|
|
@ -40,7 +40,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l13"></a>
|
||||
<a name="l14"></a>* If you make changes to ZealOS files in your </span><span class=cF2>/Home</span><span class=cF0> directory, generally you reboot to make them take effect. (You don't
|
||||
<a name="l15"></a>compile anything.) You should have two ZealOS partitions on your hard drive because a syntax error in a start-up file will
|
||||
<a name="l16"></a>make the partition unbootable. Boot to the second partition or boot to a standard ZealOS CD/DVD and use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>() to mount your
|
||||
<a name="l16"></a>make the partition unbootable. Boot to the second partition or boot to a standard ZealOS CD/DVD and use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>() to mount your
|
||||
<a name="l17"></a>hard drive.
|
||||
<a name="l18"></a>
|
||||
<a name="l19"></a>* You can copy your files to a mirrored ident partition, periodically with </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l148"><span class=cF4>CopyTree</span></a><span class=cF0>() commands in scripts. You can do merge
|
||||
|
@ -83,11 +83,11 @@ body {background-color:#fef1f0;}
|
|||
<a name="l56"></a>
|
||||
<a name="l57"></a>* Use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l202"><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#l3968"><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#l3195"><span class=cF4>CDirEntry</span></a><span class=cF0> have them. You shouldn't encounter conflicts with ZealOS using them.
|
||||
<a name="l59"></a>* Many data structures have a </span><span class=cF2>user_data</span><span class=cF0> member. Those are available for you to store a data item, for convenience. </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3977"><span class=cF4>CTask</span></a><span class=cF0>, </span><span class=cF4>
|
||||
<a name="l60"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1326"><span class=cF4>CDocEntry</span></a><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF0> have them. You shouldn't encounter conflicts with ZealOS using them.
|
||||
<a name="l61"></a>
|
||||
<a name="l62"></a>* If, for some strange reason, you wanted to reduce mem usage, make a smaller disk cache when you recompile the kernel;
|
||||
<a name="l63"></a>disabling </span><span class=cF2>AutoComplete</span><span class=cF0>; Specify smaller stack sizes when doing </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(), change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3535"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0>, and using </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l202"><span class=cF4>DocMax</span></a><span class=cF0>() to reduce
|
||||
<a name="l63"></a>disabling </span><span class=cF2>AutoComplete</span><span class=cF0>; Specify smaller stack sizes when doing </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(), change </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3544"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0>, and using </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l202"><span class=cF4>DocMax</span></a><span class=cF0>() to reduce
|
||||
<a name="l64"></a>the cmd line buffer size.
|
||||
<a name="l65"></a>
|
||||
<a name="l66"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/Merge.CC.html#l45"><span class=cF4>Merge</span></a><span class=cF0>() can be used to see what's changed. The </span><span class=cF2>+d</span><span class=cF0> flag will show differences of files which have changed and allow you to
|
||||
|
@ -189,7 +189,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l162"></a>* Use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l139"><span class=cF4>HeapLogAddrRep</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/HeapLog.CC.html#l174"><span class=cF4>HeapLogSizeRep</span></a><span class=cF0>() to find leaks. Don't be confused by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> allocations. Those are
|
||||
<a name="l163"></a>generated when text is written to the cmd line buffer.
|
||||
<a name="l164"></a>
|
||||
<a name="l165"></a>* For advanced heap debugging, play with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3465"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>. You're on your own.
|
||||
<a name="l165"></a>* For advanced heap debugging, play with </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3474"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>. You're on your own.
|
||||
<a name="l166"></a>
|
||||
<a name="l167"></a>* You can use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocFile.CC.html#l378"><span class=cF4>Type</span></a><span class=cF0>() to display </span><span class=cF2>.GR</span><span class=cF0> files.
|
||||
<a name="l168"></a>
|
||||
|
|
|
@ -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#l4290"><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#l4261"><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#l4299"><span class=cF4>CDC</span></a><span class=cF0>'s have a 4x4 matrix for rotating, scaling, skewing and shifting in 3 dimensions. To make the graphics routines use the
|
||||
<a name="l2"></a>transform, you must set the </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4270"><span class=cF4>DCF_TRANSFORMATION</span></a><span class=cF0> flag.
|
||||
<a name="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#l4290"><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#l4299"><span class=cF4>CDC</span></a><span class=cF0>.</span><span class=cF2>dc</span><span class=cF0> with </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l51"><span class=cF4>DCMat4x4Set</span></a><span class=cF0>(). See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/Graphics/Box.CC.html#l1"><span class=cF4>::/Demo/Graphics/Box.CC</span></a><span class=cF0>.
|
||||
<a name="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#l4290"><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#l4299"><span class=cF4>CDC</span></a><span class=cF0>'s have an </span><span class=cF2>x</span><span class=cF0>, </span><span class=cF2>y</span><span class=cF0> and </span><span class=cF2>z</span><span class=cF0> which is an additional shift (translation).
|
||||
<a name="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#l4290"><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#l4299"><span class=cF4>CDC</span></a><span class=cF0>'s </span><span class=cF2>transform()</span><span class=cF0> member. The default </span><span class=cF2>transform()</span><span class=cF0> callback is </span><span class=cF4>
|
||||
<a name="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>
|
||||
|
|
|
@ -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,674 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,700 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#l3968"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0>
|
||||
<a name="l120"></a>segment reg and are accessed with </span><span class=cF4>Fs-></span><span class=cF0> while </span><span class=cF4>Gs-></span><span class=cF0> points to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4087"><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#l3977"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0>
|
||||
<a name="l120"></a>segment reg and are accessed with </span><span class=cF4>Fs-></span><span class=cF0> while </span><span class=cF4>Gs-></span><span class=cF0> points to a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF0> for the current CPU core. Each task can have just one
|
||||
<a name="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>
|
||||
|
@ -193,7 +193,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l166"></a>so, look in the </span><span class=cF2>/Demo</span><span class=cF0> or </span><span class=cF2>/Apps</span><span class=cF0> directories for inspiration.
|
||||
<a name="l167"></a>
|
||||
<a name="l168"></a>Software is distributed as </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> ISO files. Burn a CD/DVD, or set your CD/DVD in </span><span class=cF2>QEMU</span><span class=cF0>, </span><span class=cF2>VMware</span><span class=cF0> or </span><span class=cF2>VirtualBox</span><span class=cF0> to the ISO file.
|
||||
<a name="l169"></a> Then, access the </span><span class=cF2>'T'</span><span class=cF0> drive. Or, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF0>() the ISO.C file and access the </span><span class=cF2>'M'</span><span class=cF0> drive in ZealOS. It must be a contiguous ISO.C
|
||||
<a name="l169"></a> Then, access the </span><span class=cF2>'T'</span><span class=cF0> drive. Or, </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF0>() the ISO.C file and access the </span><span class=cF2>'M'</span><span class=cF0> drive in ZealOS. It must be a contiguous ISO.C
|
||||
<a name="l170"></a>file, so rename it under ZealOS to ISO.C.
|
||||
<a name="l171"></a>
|
||||
<a name="l172"></a>Ideally, do not install applications such as games onto your hard drive because we wish to keep hard drive usage low, so the
|
||||
|
|
|
@ -31,7 +31,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l4"></a>
|
||||
<a name="l5"></a></span><span class=cF1>U0</span><span class=cF0> MakeMyISO(</span><span class=cF1>U8</span><span class=cF0> *_out_iso_filename)
|
||||
<a name="l6"></a>{</span><span class=cF2>//Does everything with current drive.</span><span class=cF0>
|
||||
<a name="l7"></a></span><span class=cF2>//If you have not recompiled Kernel and defined your CD/DVD drive, use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l7"></a></span><span class=cF2>//If you have not recompiled Kernel and defined your CD/DVD drive, use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l8"></a>
|
||||
<a name="l9"></a> </span><span class=cF1>U8</span><span class=cF0> *out_iso_filename = </span><span class=cF5>FileNameAbs</span><span class=cF0>(_out_iso_filename);
|
||||
<a name="l10"></a> </span><span class=cF9>I64</span><span class=cF0> line_count = </span><span class=cF5>LineRep</span><span class=cF0>(</span><span class=cF6>"/*"</span><span class=cF0>, </span><span class=cF6>"-r"</span><span class=cF0>) + </span><span class=cF5>LineRep</span><span class=cF0>(</span><span class=cF6>"/System/*"</span><span class=cF0>) + </span><span class=cF5>LineRep</span><span class=cF0>(</span><span class=cF6>"/Compiler/*"</span><span class=cF0>, </span><span class=cF6>"-S+$"</span><span class=cF0>) + </span><span class=cF5>LineRep</span><span class=cF0>(</span><span class=cF6>"/Kernel/*"</span><span class=cF0>);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -69,7 +69,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l42"></a> res = </span><span class=cF5>BlkDevNextFreeSlot</span><span class=cF0>(first_drive_let, type);
|
||||
<a name="l43"></a> res->port_num = port_num;
|
||||
<a name="l44"></a> res->ahci_port = &</span><span class=cFB>blkdev</span><span class=cF0>.ahci_hba->ports[port_num];
|
||||
<a name="l45"></a> res->ahci_port->cmd_list_base = </span><span class=cF3>NULL</span><span class=cF0>; </span><span class=cF2>// See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1018"><span class=cF4>AHCIAtaInit</span></a><span class=cF2> ...</span><span class=cF0>
|
||||
<a name="l45"></a> res->ahci_port->cmd_list_base = </span><span class=cF3>NULL</span><span class=cF0>; </span><span class=cF2>// See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1021"><span class=cF4>AHCIAtaInit</span></a><span class=cF2> ...</span><span class=cF0>
|
||||
<a name="l46"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>BlkDevAdd</span><span class=cF7>(</span><span class=cF0>res,, </span><span class=cF3>FALSE</span><span class=cF0>, </span><span class=cF3>FALSE</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l47"></a> </span><span class=cF1>return</span><span class=cF0> res;
|
||||
<a name="l48"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
|
|
|
@ -177,7 +177,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l150"></a>}
|
||||
<a name="l151"></a>
|
||||
<a name="l152"></a></span><span class=cF9>CBlkDev</span><span class=cF0> *</span><span class=cF5>BlkDevNextFreeSlot</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> first_drive_let, </span><span class=cF9>I64</span><span class=cF0> type)
|
||||
<a name="l153"></a>{</span><span class=cF2>//Locate free slot for new BlkDev, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l153"></a>{</span><span class=cF2>//Locate free slot for new BlkDev, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l154"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l155"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *res;
|
||||
<a name="l156"></a>
|
||||
|
|
|
@ -246,7 +246,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l219"></a> </span><span class=cFD>AHCIPortWait</span><span class=cF0>(bd->port_num, </span><span class=cF5>tS</span><span class=cF0> + </span><span class=cFE>2</span><span class=cF0>);
|
||||
<a name="l220"></a> </span><span class=cF5>AHCIAtapiBlank</span><span class=cF0>(bd);
|
||||
<a name="l221"></a> bd->flags |= </span><span class=cF3>BDF_LAST_WAS_WRITE</span><span class=cF0>;
|
||||
<a name="l222"></a> </span><span class=cFD>AHCIAtapiModeWriteSet</span><span class=cF0>(bd);
|
||||
<a name="l222"></a> </span><span class=cFD>AHCIAtapiModeWriteSelect</span><span class=cF0>(bd);
|
||||
<a name="l223"></a>
|
||||
<a name="l224"></a> </span><span class=cFB>progress1</span><span class=cF0> = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l225"></a> </span><span class=cFB>progress1_max</span><span class=cF0> = </span><span class=cFE>1</span><span class=cF0>;
|
||||
|
|
|
@ -26,7 +26,7 @@ body {background-color:#fef1f0;}
|
|||
<body>
|
||||
<pre style="font-family:monospace;font-size:12pt">
|
||||
<a name="l1"></a><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>DirNew</span><span class=cF0>(</span><span class=cF9>CDrive</span><span class=cF0> *drive, </span><span class=cF1>U8</span><span class=cF0> *cur_dir, </span><span class=cF9>CDirEntry</span><span class=cF0> *tmpde, </span><span class=cF1>Bool</span><span class=cF0> free_old_chain=</span><span class=cF3>TRUE</span><span class=cF0>)
|
||||
<a name="l2"></a>{</span><span class=cF2>//Makes a directory entry in the directory from a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3195"><span class=cF4>CDirEntry</span></a><span class=cF2> node.</span><span class=cF0>
|
||||
<a name="l2"></a>{</span><span class=cF2>//Makes a directory entry in the directory from a </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF2> node.</span><span class=cF0>
|
||||
<a name="l3"></a> </span><span class=cF1>switch</span><span class=cF0> (drive->fs_type)
|
||||
<a name="l4"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l5"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>FSt_REDSEA</span><span class=cF0>:
|
||||
|
|
|
@ -69,7 +69,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l42"></a>}
|
||||
<a name="l43"></a>
|
||||
<a name="l44"></a></span><span class=cF9>CDrive</span><span class=cF0> *</span><span class=cF5>DriveMakeFreeSlot</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let)
|
||||
<a name="l45"></a>{</span><span class=cF2>//Make a slot free for a new drv, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l45"></a>{</span><span class=cF2>//Make a slot free for a new drv, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l46"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cF5>Letter2Letter</span><span class=cF0>(drv_let) - </span><span class=cF6>'A'</span><span class=cF0>;
|
||||
<a name="l47"></a> </span><span class=cF9>CDrive</span><span class=cF0> *res;
|
||||
<a name="l48"></a>
|
||||
|
@ -82,7 +82,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l55"></a>}
|
||||
<a name="l56"></a>
|
||||
<a name="l57"></a></span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>DriveNextFreeLet</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> first_drive_let=</span><span class=cF6>'C'</span><span class=cF0>)
|
||||
<a name="l58"></a>{</span><span class=cF2>//Locate free slot for new drv, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l58"></a>{</span><span class=cF2>//Locate free slot for new drv, like during </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l59"></a> </span><span class=cF9>I64</span><span class=cF0> i = </span><span class=cF5>Letter2Letter</span><span class=cF0>(first_drive_let) - </span><span class=cF6>'A'</span><span class=cF0>, type = </span><span class=cF5>Letter2BlkDevType</span><span class=cF0>(first_drive_let);
|
||||
<a name="l60"></a>
|
||||
<a name="l61"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cFE>0</span><span class=cF0> <= i < </span><span class=cF3>DRIVES_NUM</span><span class=cF7>)</span><span class=cF0>)
|
||||
|
@ -218,7 +218,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l191"></a>}
|
||||
<a name="l192"></a>
|
||||
<a name="l193"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Letter2BlkDevType</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let)
|
||||
<a name="l194"></a>{</span><span class=cF2>//Drive letter to BlkDev Type. drv_let=0 not allowed. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3268"><span class=cF4>BDT_NULL</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l194"></a>{</span><span class=cF2>//Drive letter to BlkDev Type. drv_let=0 not allowed. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3277"><span class=cF4>BDT_NULL</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l195"></a> drv_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(drv_let);
|
||||
<a name="l196"></a>
|
||||
<a name="l197"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF6>'A'</span><span class=cF0> <= drv_let <= </span><span class=cF6>'B'</span><span class=cF0>)
|
||||
|
|
|
@ -90,7 +90,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l63"></a>}
|
||||
<a name="l64"></a>
|
||||
<a name="l65"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>FileFind</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *filename, </span><span class=cF9>CDirEntry</span><span class=cF0> *_de=</span><span class=cF3>NULL</span><span class=cF0>, </span><span class=cF9>I64</span><span class=cF0> fuf_flags=</span><span class=cFE>0</span><span class=cF0>)
|
||||
<a name="l66"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3247"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3248"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_SCAN_PARENTS</span></a><span class=cF0>
|
||||
<a name="l66"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3257"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3265"><span class=cF4>FUF_SCAN_PARENTS</span></a><span class=cF0>
|
||||
<a name="l67"></a></span><span class=cF2>//If you pass _de, you must Free(_de->full_name);</span><span class=cF0>
|
||||
<a name="l68"></a> </span><span class=cF9>I64</span><span class=cF0> cur_dir_clus;
|
||||
<a name="l69"></a> </span><span class=cF1>U8</span><span class=cF0> *full_name = </span><span class=cF3>NULL</span><span class=cF0>;
|
||||
|
|
|
@ -95,7 +95,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l68"></a>{</span><span class=cF2>//Format hard drive or RAM drive.</span><span class=cF0>
|
||||
<a name="l69"></a></span><span class=cF2>//Warning: Destroys all prev info.</span><span class=cF0>
|
||||
<a name="l70"></a> </span><span class=cF2>//quick=FALSE means fill entire drive with zeros.</span><span class=cF0>
|
||||
<a name="l71"></a> </span><span class=cF2>//Choose </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3339"><span class=cF4>FSt_FAT32</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3338"><span class=cF4>FSt_REDSEA</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l71"></a> </span><span class=cF2>//Choose </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3348"><span class=cF4>FSt_FAT32</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3347"><span class=cF4>FSt_REDSEA</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l72"></a> </span><span class=cF2>//You don't format a CD/DVD with this.</span><span class=cF0>
|
||||
<a name="l73"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive = </span><span class=cF5>Letter2Drive</span><span class=cF0>(drv_let);
|
||||
<a name="l74"></a> </span><span class=cF1>Bool</span><span class=cF0> old_silent = </span><span class=cF5>IsSilent</span><span class=cF0>;
|
||||
|
|
|
@ -216,7 +216,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l189"></a>}
|
||||
<a name="l190"></a>
|
||||
<a name="l191"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>FileNameAbs</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *_filename, </span><span class=cF9>I64</span><span class=cF0> fuf_flags=</span><span class=cF3>NONE</span><span class=cF0>)
|
||||
<a name="l192"></a>{</span><span class=cF2>//Absolute filename. Accepts </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_SCAN_PARENTS</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l192"></a>{</span><span class=cF2>//Absolute filename. Accepts </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3265"><span class=cF4>FUF_SCAN_PARENTS</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l193"></a> </span><span class=cF1>U8</span><span class=cF0> *res, *filename, *buf, *buf_file, *buf_dir, *free_filename, *free_buf;
|
||||
<a name="l194"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> de;
|
||||
<a name="l195"></a>
|
||||
|
|
|
@ -346,7 +346,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l319"></a>}
|
||||
<a name="l320"></a>
|
||||
<a name="l321"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cFD>FAT32FileFind</span><span class=cF0>(</span><span class=cF9>CDrive</span><span class=cF0> *drive, </span><span class=cF9>I64</span><span class=cF0> cur_dir_clus, </span><span class=cF1>U8</span><span class=cF0> *name, </span><span class=cF9>CDirEntry</span><span class=cF0> *_res, </span><span class=cF9>I64</span><span class=cF0> fuf_flags=</span><span class=cFE>0</span><span class=cF0>)
|
||||
<a name="l322"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3247"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3248"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0>
|
||||
<a name="l322"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3257"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0>
|
||||
<a name="l323"></a> </span><span class=cF1>Bool</span><span class=cF0> res = </span><span class=cF3>FALSE</span><span class=cF0>, unlock;
|
||||
<a name="l324"></a> </span><span class=cF9>CFAT32DirEntry</span><span class=cF0> *buf;
|
||||
<a name="l325"></a> </span><span class=cF9>I64</span><span class=cF0> xsum = </span><span class=cFE>0</span><span class=cF0>, attr, cur_dir_entry, entries_per_clus;
|
||||
|
|
|
@ -196,7 +196,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l169"></a>}
|
||||
<a name="l170"></a>
|
||||
<a name="l171"></a></span><span class=cF1>Bool</span><span class=cF0> </span><span class=cFD>RedSeaFileFind</span><span class=cF0>(</span><span class=cF9>CDrive</span><span class=cF0> *drive, </span><span class=cF9>I64</span><span class=cF0> cur_dir_clus, </span><span class=cF1>U8</span><span class=cF0> *name, </span><span class=cF9>CDirEntry</span><span class=cF0> *_res, </span><span class=cF9>I64</span><span class=cF0> fuf_flags=</span><span class=cFE>0</span><span class=cF0>)
|
||||
<a name="l172"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3247"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3248"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0>
|
||||
<a name="l172"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3256"><span class=cF4>FUF_JUST_DIRS</span></a><span class=cF2>, </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3257"><span class=cF4>FUF_JUST_FILES</span></a><span class=cF0>
|
||||
<a name="l173"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> *buf, *buf2, *ptr;
|
||||
<a name="l174"></a> </span><span class=cF1>U8</span><span class=cF0> dname[</span><span class=cF3>CDIR_FILENAME_LEN</span><span class=cF0>];
|
||||
<a name="l175"></a> </span><span class=cF9>I64</span><span class=cF0> ch;
|
||||
|
|
|
@ -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#l3826"><span class=cF4>flags</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3872"><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#l3835"><span class=cF4>flags</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3881"><span class=cF4>message_code</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="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#l3872"><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#l3881"><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>&task->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#l3872"><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#l3881"><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#l3872"><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#l3881"><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>
|
||||
|
|
|
@ -299,7 +299,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l272"></a>}
|
||||
<a name="l273"></a>
|
||||
<a name="l274"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>Color2Str</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>CColorROPU32</span><span class=cF0> c)
|
||||
<a name="l275"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3632"><span class=cF4>CColorROPU32</span></a><span class=cF2> with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> str.</span><span class=cF0>
|
||||
<a name="l275"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF2> with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> str.</span><span class=cF0>
|
||||
<a name="l276"></a> *buf = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l277"></a> </span><span class=cF1>if</span><span class=cF0> (c.c0.rop & </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0>)
|
||||
<a name="l278"></a> </span><span class=cF5>CatPrint</span><span class=cF0>(buf, </span><span class=cF6>"TWO|"</span><span class=cF0>);
|
||||
|
@ -332,7 +332,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l305"></a></span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFD>str2color_list</span><span class=cF0> = </span><span class=cF6>"/,)}>"</span><span class=cF0>;
|
||||
<a name="l306"></a>
|
||||
<a name="l307"></a></span><span class=cF9>CColorROPU16</span><span class=cF0> </span><span class=cF5>Str2ColorU16</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
|
||||
<a name="l308"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3628"><span class=cF4>CColorROPU16</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l308"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3637"><span class=cF4>CColorROPU16</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l309"></a> </span><span class=cF9>CColorROPU16</span><span class=cF0> res = </span><span class=cF3>COLOR_INVALID</span><span class=cF0>;
|
||||
<a name="l310"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
||||
<a name="l311"></a> </span><span class=cF1>U8</span><span class=cF0> *ptr, *ptr2, *st2;
|
||||
|
@ -387,7 +387,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l360"></a>}
|
||||
<a name="l361"></a>
|
||||
<a name="l362"></a></span><span class=cF9>CColorROPU32</span><span class=cF0> </span><span class=cF5>Str2ColorU32</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st)
|
||||
<a name="l363"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3632"><span class=cF4>CColorROPU32</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l363"></a>{</span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l62"><span class=cF4>DCLighting</span></a><span class=cF2> color str with flags to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3641"><span class=cF4>CColorROPU32</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l364"></a> </span><span class=cF1>U8</span><span class=cF0> *st2;
|
||||
<a name="l365"></a> </span><span class=cF9>CColorROPU32</span><span class=cF0> res = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l366"></a>
|
||||
|
|
|
@ -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>->num) </span><span class=cF2>//Gs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4087"><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>->num) </span><span class=cF2>//Gs is current </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4096"><span class=cF4>CCPU</span></a><span class=cF2> struct</span><span class=cF0>
|
||||
<a name="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 < </span><span class=cFE>256</span><span class=cF0>; i++)
|
||||
|
|
|
@ -49,7 +49,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l22"></a>
|
||||
<a name="l23"></a>#</span><span class=cF1>exe</span><span class=cF0>
|
||||
<a name="l24"></a></span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l25"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"SYS_COMPILE_TIME:: DU64 0x%X;"</span><span class=cF0>, </span><span class=cF5>Now</span><span class=cF0>); </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1130"><span class=cF4>AHCIBootDVDProbeAll</span></a><span class=cF0>
|
||||
<a name="l25"></a> </span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"SYS_COMPILE_TIME:: DU64 0x%X;"</span><span class=cF0>, </span><span class=cF5>Now</span><span class=cF0>); </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1133"><span class=cF4>AHCIBootDVDProbeAll</span></a><span class=cF0>
|
||||
<a name="l26"></a></span><span class=cF7>}</span><span class=cF0>;
|
||||
<a name="l27"></a>
|
||||
<a name="l28"></a>#</span><span class=cF1>assert</span><span class=cF0> </span><span class=cFD>SYS_COMPILE_TIME</span><span class=cF0> + </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CDate</span><span class=cF0>) + </span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF9>CBinFile</span><span class=cF0>) < </span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0>
|
||||
|
|
|
@ -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> << </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#l3968"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> structure from code heap so addr will be short.</span><span class=cF0>
|
||||
<a name="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
|
@ -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>"MultiCore"</span><span class=cF0>
|
||||
<a name="l189"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>"::/Doc/MultiCore"</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#l4087"><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#l4096"><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>"MultiCore;Processor"</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#l4087"><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#l4096"><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>"PCI"</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>"Task;Processor"</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#l3968"><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#l3977"><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>"Time/CPU Cycles"</span><span class=cF0>
|
||||
<a name="l243"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>"::/Doc/TimeCycles"</span><span class=cF0>
|
||||
|
|
|
@ -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>"Keyboard Devices;Char/Input;StdIn"</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#l4357"><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#l4366"><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>);
|
||||
|
|
|
@ -285,7 +285,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l258"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>, </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF9>CMemUsed</span><span class=cF0>.size - </span><span class=cF9>CMemUsed</span><span class=cF0>.</span><span class=cF1>start</span><span class=cF0>[</span><span class=cFC>RSI</span><span class=cF0>]
|
||||
<a name="l259"></a> </span><span class=cF1>TEST</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>, </span><span class=cFC>RAX</span><span class=cF0>
|
||||
<a name="l260"></a> </span><span class=cF1>JGE</span><span class=cF0> @@20 </span><span class=cF2>//Aligned alloced chunks have neg size.</span><span class=cF0>
|
||||
<a name="l261"></a> </span><span class=cF2>//The neg size is offset to start of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3491"><span class=cF4>CMemUsed</span></a><span class=cF2> struct.</span><span class=cF0>
|
||||
<a name="l261"></a> </span><span class=cF2>//The neg size is offset to start of </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3500"><span class=cF4>CMemUsed</span></a><span class=cF2> struct.</span><span class=cF0>
|
||||
<a name="l262"></a> </span><span class=cF1>ADD</span><span class=cF0> </span><span class=cFC>RSI</span><span class=cF0>, </span><span class=cFC>RAX</span><span class=cF0>
|
||||
<a name="l263"></a>
|
||||
<a name="l264"></a>@@20: </span><span class=cF1>PUSHFD</span><span class=cF0>
|
||||
|
@ -414,9 +414,9 @@ body {background-color:#fef1f0;}
|
|||
<a name="l387"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FREE</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Free</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *addr); </span><span class=cF2>//Free </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF2>()ed memory chunk.</span><span class=cF0>
|
||||
<a name="l388"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSIZE</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MSize</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//Size of heap object.</span><span class=cF0>
|
||||
<a name="l389"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSIZE2</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MSize2</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//Internal size of heap object.</span><span class=cF0>
|
||||
<a name="l390"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MHEAP_CTRL</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *</span><span class=cF5>MHeapCtrl</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><span class=cF4>CHeapCtrl</span></a><span class=cF2> of object.</span><span class=cF0>
|
||||
<a name="l390"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MHEAP_CTRL</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *</span><span class=cF5>MHeapCtrl</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *src); </span><span class=cF2>//</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><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#l3968"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
|
||||
<a name="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#l3968"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
|
||||
<a name="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#l3968"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
|
||||
<a name="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#l3968"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3555"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> or </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>CHeapCtrl</span></a><span class=cF2>. NULL allocs off current task's heap.</span><span class=cF0>
|
||||
<a name="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>
|
||||
|
|
|
@ -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#l4111"><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#l4120"><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>
|
||||
|
|
|
@ -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>"Executive Task CPU%02X"</span><span class=cF0>, i);
|
||||
<a name="l350"></a> task = </span><span class=cF5>Spawn</span><span class=cF0>(&</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->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#l3968"><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#l3977"><span class=cF4>CTask</span></a><span class=cF2> alloced off this core's executive_task's heap (Which is System task)</span><span class=cF0>
|
||||
<a name="l353"></a> </span><span class=cFD>CPUStructInit</span><span class=cF0>(i, &</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>
|
||||
|
|
|
@ -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#l3872"><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#l3881"><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#l3872"><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#l3881"><span class=cF4>message_code</span></a><span class=cF2>. See </span><a href="https://zeal-operating-system.github.io/ZealOS/Demo/MessageLoop.CC.html#l1"><span class=cF4>::/Demo/MessageLoop.CC</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="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#l3873"><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#l3874"><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#l4122"><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#l4122"><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#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns 0 immediately if no key.</span><span class=cF0>
|
||||
<a name="l130"></a></span><span class=cF2>//Waits for </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3883"><span class=cF4>MESSAGE_KEY_UP</span></a><span class=cF2> of non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> key and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> if key.</span><span class=cF0>
|
||||
<a name="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>(&arg1b, &arg2b, </span><span class=cFE>1</span><span class=cF0> << </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#l4196"><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#l4197"><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#l4205"><span class=cF4>SC_SHIFT</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4206"><span class=cF4>SC_CTRL</span></a><span class=cF2>, etc.</span><span class=cF0>
|
||||
<a name="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#l3873"><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#l4122"><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#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> and returns FALSE immediately if no key.</span><span class=cF0>
|
||||
<a name="l145"></a></span><span class=cF2>//Sets </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="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#l3873"><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#l4122"><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#l3882"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF2> message and returns </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="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#l4122"><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#l4131"><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#l4357"><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#l4366"><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)
|
||||
|
|
|
@ -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#l4365"><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#l4374"><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>
|
||||
|
|
|
@ -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 "Press a key" and wait for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4122"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
|
||||
<a name="l128"></a>{</span><span class=cF2>//Print "Press a key" and wait for non-zero </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4131"><span class=cF4>ASCII</span></a><span class=cF2> key.</span><span class=cF0>
|
||||
<a name="l129"></a> </span><span class=cF6>"$BK,1$PRESS A KEY$BK,0$\n"</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>}
|
||||
|
|
|
@ -31,7 +31,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l4"></a>
|
||||
<a name="l5"></a></span><span class=cF1>U0</span><span class=cF0> MakeMyISO(</span><span class=cF1>U8</span><span class=cF0> *_out_iso_filename)
|
||||
<a name="l6"></a>{</span><span class=cF2>//Does everything with current drive.</span><span class=cF0>
|
||||
<a name="l7"></a></span><span class=cF2>//If you have not recompiled Kernel and defined your CD/DVD drive, use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l7"></a></span><span class=cF2>//If you have not recompiled Kernel and defined your CD/DVD drive, use </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l8"></a> </span><span class=cF1>U8</span><span class=cF0> *out_iso_filename = </span><span class=cF5>FileNameAbs</span><span class=cF0>(_out_iso_filename);
|
||||
<a name="l9"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>DriveIsWritable</span><span class=cF0>)
|
||||
<a name="l10"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
|
|
|
@ -124,230 +124,236 @@ body {background-color:#fef1f0;}
|
|||
<a name="l97"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF2>// ATA</span><span class=cF0>
|
||||
<a name="l98"></a> temp_blkdev->first_drive_let = </span><span class=cF6>'C'</span><span class=cF0>;
|
||||
<a name="l99"></a>
|
||||
<a name="l100"></a> </span><span class=cF5>AHCIPortInit</span><span class=cF0>(temp_blkdev, port, i);
|
||||
<a name="l101"></a> </span><span class=cF6>"\n\t"</span><span class=cF0>;
|
||||
<a name="l102"></a>
|
||||
<a name="l103"></a> </span><span class=cF1>if</span><span class=cF0> (temp_blkdev->dev_id_record)
|
||||
<a name="l104"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l105"></a> st = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cFE>40</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l106"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j < </span><span class=cFE>20</span><span class=cF0>; j++)
|
||||
<a name="l107"></a> st[j] = </span><span class=cF5>EndianU16</span><span class=cF0>(temp_blkdev->dev_id_record[</span><span class=cFE>27</span><span class=cF0> + j]);
|
||||
<a name="l108"></a> model = </span><span class=cF5>MStrUtil</span><span class=cF0>(st, </span><span class=cF3>SUF_REM_LEADING</span><span class=cF0> | </span><span class=cF3>SUF_REM_TRAILING</span><span class=cF0>);
|
||||
<a name="l109"></a> </span><span class=cF6>"Model: %s\n\t"</span><span class=cF0>, model;
|
||||
<a name="l110"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l111"></a> </span><span class=cF5>Free</span><span class=cF0>(model);
|
||||
<a name="l112"></a>
|
||||
<a name="l113"></a> st = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cFE>20</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l114"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j < </span><span class=cFE>10</span><span class=cF0>; j++)
|
||||
<a name="l115"></a> st[j] = </span><span class=cF5>EndianU16</span><span class=cF0>(temp_blkdev->dev_id_record[</span><span class=cFE>10</span><span class=cF0> + j]);
|
||||
<a name="l116"></a> serial = </span><span class=cF5>MStrUtil</span><span class=cF0>(st, </span><span class=cF3>SUF_REM_LEADING</span><span class=cF0> | </span><span class=cF3>SUF_REM_TRAILING</span><span class=cF0>);
|
||||
<a name="l117"></a> </span><span class=cF6>"Serial: %s\n"</span><span class=cF0>, serial;
|
||||
<a name="l118"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l119"></a> </span><span class=cF5>Free</span><span class=cF0>(serial);
|
||||
<a name="l120"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l121"></a>
|
||||
<a name="l122"></a> </span><span class=cF6>"\n"</span><span class=cF0>;
|
||||
<a name="l123"></a>
|
||||
<a name="l124"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(temp_blkdev);
|
||||
<a name="l125"></a> </span><span class=cF5>Free</span><span class=cF0>(temp_blkdev);
|
||||
<a name="l126"></a> }
|
||||
<a name="l127"></a> num++;
|
||||
<a name="l128"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l129"></a> }
|
||||
<a name="l130"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l131"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l132"></a> </span><span class=cF6>"blkdev.ahci_hba is NULL !\n\n"</span><span class=cF0>;
|
||||
<a name="l133"></a>
|
||||
<a name="l134"></a> </span><span class=cF1>return</span><span class=cF0> num;
|
||||
<a name="l135"></a>}
|
||||
<a name="l136"></a>
|
||||
<a name="l137"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Install;File/Cmd Line (Typically);Cmd Line (Typically);"</span><span class=cF0>
|
||||
<a name="l138"></a></span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>Mount2</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> boot_drive_let, </span><span class=cF9>CDoc</span><span class=cF0> *_doc, </span><span class=cF1>Bool</span><span class=cF0> _caller_is_prtdisk)
|
||||
<a name="l139"></a>{</span><span class=cF2>//If _doc, called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF2> else called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l140"></a> </span><span class=cF9>I64</span><span class=cF0> count, total = </span><span class=cFE>0</span><span class=cF0>, num_hints, drv_let, type, prt_num, port;
|
||||
<a name="l141"></a> </span><span class=cF1>U8</span><span class=cF0> blks_buf[</span><span class=cF3>STR_LEN</span><span class=cF0>], addr_buf[</span><span class=cF3>STR_LEN</span><span class=cF0>], port_str[</span><span class=cF3>STR_LEN</span><span class=cF0>],
|
||||
<a name="l142"></a> *filename = </span><span class=cF3>NULL</span><span class=cF0>, *filename2 = </span><span class=cF3>NULL</span><span class=cF0>, res = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l143"></a> </span><span class=cF1>Bool</span><span class=cF0> whole_drive, make_free;
|
||||
<a name="l144"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc;
|
||||
<a name="l145"></a>
|
||||
<a name="l146"></a> </span><span class=cF1>if</span><span class=cF0> (boot_drive_let)
|
||||
<a name="l147"></a> boot_drive_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(boot_drive_let);
|
||||
<a name="l148"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l149"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l150"></a> count = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l151"></a> </span><span class=cF1>if</span><span class=cF0> (!_doc)
|
||||
<a name="l152"></a> </span><span class=cF5>DriveRep</span><span class=cF0>;
|
||||
<a name="l153"></a>
|
||||
<a name="l154"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l155"></a> </span><span class=cF6>"\n****** Mount Drives ******\n"</span><span class=cF0>
|
||||
<a name="l156"></a> </span><span class=cF6>"$GREEN$A$FG$-$GREEN$B$FG$ are RAM drives.\n"</span><span class=cF0>
|
||||
<a name="l157"></a> </span><span class=cF6>"$GREEN$C$FG$-$GREEN$L$FG$ are ATA hard drives.\n"</span><span class=cF0>
|
||||
<a name="l158"></a> </span><span class=cF6>"$GREEN$M$FG$-$GREEN$P$FG$ are ISO file read drives.\n"</span><span class=cF0>
|
||||
<a name="l159"></a> </span><span class=cF6>"$GREEN$Q$FG$-$GREEN$S$FG$ are ISO file write drives.\n"</span><span class=cF0>
|
||||
<a name="l160"></a> </span><span class=cF6>"$GREEN$T$FG$-$GREEN$Z$FG$ are ATAPI CD/DVD drives.\n"</span><span class=cF0>
|
||||
<a name="l161"></a> </span><span class=cF6>"\nDrive Letter ($PURPLE$<ENTER>$FG$ to exit):"</span><span class=cF0>;
|
||||
<a name="l162"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l163"></a> </span><span class=cF6>"\n****** Mount Drives ******\n"</span><span class=cF0>
|
||||
<a name="l164"></a> </span><span class=cF6>"A-B are RAM drives.\n"</span><span class=cF0>
|
||||
<a name="l165"></a> </span><span class=cF6>"C-L are ATA hard drives.\n"</span><span class=cF0>
|
||||
<a name="l166"></a> </span><span class=cF6>"M-P are ISO file read drives.\n"</span><span class=cF0>
|
||||
<a name="l167"></a> </span><span class=cF6>"Q-S are ISO file write drives.\n"</span><span class=cF0>
|
||||
<a name="l168"></a> </span><span class=cF6>"T-Z are ATAPI CD/DVD drives.\n"</span><span class=cF0>
|
||||
<a name="l169"></a> </span><span class=cF6>"\nDrive Letter (<ENTER> to exit):"</span><span class=cF0>;
|
||||
<a name="l170"></a>
|
||||
<a name="l171"></a> drv_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l172"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l173"></a> </span><span class=cF1>if</span><span class=cF0> (type = </span><span class=cF5>Letter2BlkDevType</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l174"></a> {
|
||||
<a name="l175"></a> whole_drive = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l176"></a> </span><span class=cF1>if</span><span class=cF0> (_doc)
|
||||
<a name="l177"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l178"></a> doc = _doc;
|
||||
<a name="l179"></a> make_free = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l180"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l181"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l182"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>()</span><span class=cF0>
|
||||
<a name="l183"></a> doc = </span><span class=cF5>DocNew</span><span class=cF0>;
|
||||
<a name="l184"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"CBlkDev *bd;\n"</span><span class=cF0>);
|
||||
<a name="l185"></a> make_free = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l100"></a> </span><span class=cF1>try</span><span class=cF0>
|
||||
<a name="l101"></a> </span><span class=cF5>AHCIPortInit</span><span class=cF0>(temp_blkdev, port, i);
|
||||
<a name="l102"></a> </span><span class=cF1>catch</span><span class=cF0>
|
||||
<a name="l103"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l104"></a> </span><span class=cF5>Fs</span><span class=cF0>->catch_except = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l105"></a> </span><span class=cF6>"Error at SATA Port %d"</span><span class=cF0>, i;
|
||||
<a name="l106"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l107"></a> </span><span class=cF6>"\n\t"</span><span class=cF0>;
|
||||
<a name="l108"></a>
|
||||
<a name="l109"></a> </span><span class=cF1>if</span><span class=cF0> (temp_blkdev->dev_id_record)
|
||||
<a name="l110"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l111"></a> st = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cFE>40</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l112"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j < </span><span class=cFE>20</span><span class=cF0>; j++)
|
||||
<a name="l113"></a> st[j] = </span><span class=cF5>EndianU16</span><span class=cF0>(temp_blkdev->dev_id_record[</span><span class=cFE>27</span><span class=cF0> + j]);
|
||||
<a name="l114"></a> model = </span><span class=cF5>MStrUtil</span><span class=cF0>(st, </span><span class=cF3>SUF_REM_LEADING</span><span class=cF0> | </span><span class=cF3>SUF_REM_TRAILING</span><span class=cF0>);
|
||||
<a name="l115"></a> </span><span class=cF6>"Model: %s\n\t"</span><span class=cF0>, model;
|
||||
<a name="l116"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l117"></a> </span><span class=cF5>Free</span><span class=cF0>(model);
|
||||
<a name="l118"></a>
|
||||
<a name="l119"></a> st = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cFE>20</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l120"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j < </span><span class=cFE>10</span><span class=cF0>; j++)
|
||||
<a name="l121"></a> st[j] = </span><span class=cF5>EndianU16</span><span class=cF0>(temp_blkdev->dev_id_record[</span><span class=cFE>10</span><span class=cF0> + j]);
|
||||
<a name="l122"></a> serial = </span><span class=cF5>MStrUtil</span><span class=cF0>(st, </span><span class=cF3>SUF_REM_LEADING</span><span class=cF0> | </span><span class=cF3>SUF_REM_TRAILING</span><span class=cF0>);
|
||||
<a name="l123"></a> </span><span class=cF6>"Serial: %s\n"</span><span class=cF0>, serial;
|
||||
<a name="l124"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l125"></a> </span><span class=cF5>Free</span><span class=cF0>(serial);
|
||||
<a name="l126"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l127"></a>
|
||||
<a name="l128"></a> </span><span class=cF6>"\n"</span><span class=cF0>;
|
||||
<a name="l129"></a>
|
||||
<a name="l130"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(temp_blkdev);
|
||||
<a name="l131"></a> </span><span class=cF5>Free</span><span class=cF0>(temp_blkdev);
|
||||
<a name="l132"></a> }
|
||||
<a name="l133"></a> num++;
|
||||
<a name="l134"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l135"></a> }
|
||||
<a name="l136"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l137"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l138"></a> </span><span class=cF6>"blkdev.ahci_hba is NULL !\n\n"</span><span class=cF0>;
|
||||
<a name="l139"></a>
|
||||
<a name="l140"></a> </span><span class=cF1>return</span><span class=cF0> num;
|
||||
<a name="l141"></a>}
|
||||
<a name="l142"></a>
|
||||
<a name="l143"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Install;File/Cmd Line (Typically);Cmd Line (Typically);"</span><span class=cF0>
|
||||
<a name="l144"></a></span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>Mount2</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> boot_drive_let, </span><span class=cF9>CDoc</span><span class=cF0> *_doc, </span><span class=cF1>Bool</span><span class=cF0> _caller_is_prtdisk)
|
||||
<a name="l145"></a>{</span><span class=cF2>//If _doc, called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF2> else called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l146"></a> </span><span class=cF9>I64</span><span class=cF0> count, total = </span><span class=cFE>0</span><span class=cF0>, num_hints, drv_let, type, prt_num, port;
|
||||
<a name="l147"></a> </span><span class=cF1>U8</span><span class=cF0> blks_buf[</span><span class=cF3>STR_LEN</span><span class=cF0>], addr_buf[</span><span class=cF3>STR_LEN</span><span class=cF0>], port_str[</span><span class=cF3>STR_LEN</span><span class=cF0>],
|
||||
<a name="l148"></a> *filename = </span><span class=cF3>NULL</span><span class=cF0>, *filename2 = </span><span class=cF3>NULL</span><span class=cF0>, res = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l149"></a> </span><span class=cF1>Bool</span><span class=cF0> whole_drive, make_free;
|
||||
<a name="l150"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc;
|
||||
<a name="l151"></a>
|
||||
<a name="l152"></a> </span><span class=cF1>if</span><span class=cF0> (boot_drive_let)
|
||||
<a name="l153"></a> boot_drive_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(boot_drive_let);
|
||||
<a name="l154"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l155"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l156"></a> count = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l157"></a> </span><span class=cF1>if</span><span class=cF0> (!_doc)
|
||||
<a name="l158"></a> </span><span class=cF5>DriveRep</span><span class=cF0>;
|
||||
<a name="l159"></a>
|
||||
<a name="l160"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l161"></a> </span><span class=cF6>"\n****** Mount Drives ******\n"</span><span class=cF0>
|
||||
<a name="l162"></a> </span><span class=cF6>"$GREEN$A$FG$-$GREEN$B$FG$ are RAM drives.\n"</span><span class=cF0>
|
||||
<a name="l163"></a> </span><span class=cF6>"$GREEN$C$FG$-$GREEN$L$FG$ are ATA hard drives.\n"</span><span class=cF0>
|
||||
<a name="l164"></a> </span><span class=cF6>"$GREEN$M$FG$-$GREEN$P$FG$ are ISO file read drives.\n"</span><span class=cF0>
|
||||
<a name="l165"></a> </span><span class=cF6>"$GREEN$Q$FG$-$GREEN$S$FG$ are ISO file write drives.\n"</span><span class=cF0>
|
||||
<a name="l166"></a> </span><span class=cF6>"$GREEN$T$FG$-$GREEN$Z$FG$ are ATAPI CD/DVD drives.\n"</span><span class=cF0>
|
||||
<a name="l167"></a> </span><span class=cF6>"\nDrive Letter ($PURPLE$<ENTER>$FG$ to exit):"</span><span class=cF0>;
|
||||
<a name="l168"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l169"></a> </span><span class=cF6>"\n****** Mount Drives ******\n"</span><span class=cF0>
|
||||
<a name="l170"></a> </span><span class=cF6>"A-B are RAM drives.\n"</span><span class=cF0>
|
||||
<a name="l171"></a> </span><span class=cF6>"C-L are ATA hard drives.\n"</span><span class=cF0>
|
||||
<a name="l172"></a> </span><span class=cF6>"M-P are ISO file read drives.\n"</span><span class=cF0>
|
||||
<a name="l173"></a> </span><span class=cF6>"Q-S are ISO file write drives.\n"</span><span class=cF0>
|
||||
<a name="l174"></a> </span><span class=cF6>"T-Z are ATAPI CD/DVD drives.\n"</span><span class=cF0>
|
||||
<a name="l175"></a> </span><span class=cF6>"\nDrive Letter (<ENTER> to exit):"</span><span class=cF0>;
|
||||
<a name="l176"></a>
|
||||
<a name="l177"></a> drv_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l178"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l179"></a> </span><span class=cF1>if</span><span class=cF0> (type = </span><span class=cF5>Letter2BlkDevType</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l180"></a> {
|
||||
<a name="l181"></a> whole_drive = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l182"></a> </span><span class=cF1>if</span><span class=cF0> (_doc)
|
||||
<a name="l183"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l184"></a> doc = _doc;
|
||||
<a name="l185"></a> make_free = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l186"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l187"></a> prt_num = </span><span class=cF3>I64_MIN</span><span class=cF0>;
|
||||
<a name="l188"></a> port = -</span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l189"></a> </span><span class=cF1>switch</span><span class=cF0> (type)
|
||||
<a name="l190"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l191"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_RAM</span><span class=cF0>:
|
||||
<a name="l192"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l193"></a> </span><span class=cF6>"Addr of RAM disk ($PURPLE$<ENTER>$FG$ to MAlloc):"</span><span class=cF0>;
|
||||
<a name="l194"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l195"></a> </span><span class=cF6>"Addr of RAM disk (<ENTER> to MAlloc):"</span><span class=cF0>;
|
||||
<a name="l196"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(addr_buf, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l197"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>:
|
||||
<a name="l198"></a> </span><span class=cF6>"Blks of 512 bytes:"</span><span class=cF0>;
|
||||
<a name="l199"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(blks_buf, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l200"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l201"></a>
|
||||
<a name="l202"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>:
|
||||
<a name="l203"></a> filename = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"File Name:"</span><span class=cF0>);
|
||||
<a name="l204"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l205"></a>
|
||||
<a name="l206"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATA</span><span class=cF0>:
|
||||
<a name="l207"></a> prt_num = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Partition Num (Default=All):"</span><span class=cF0>, prt_num);
|
||||
<a name="l208"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
|
||||
<a name="l209"></a> num_hints = </span><span class=cF5>SATARep</span><span class=cF0>(type);
|
||||
<a name="l210"></a> </span><span class=cF1>if</span><span class=cF0> (type == </span><span class=cF3>BDT_ATAPI</span><span class=cF0> && boot_drive_let)
|
||||
<a name="l211"></a> </span><span class=cF6>"<ENTER> to use booted CD/DVD\n"</span><span class=cF0>; </span><span class=cF2>//Only </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l212"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l213"></a> {
|
||||
<a name="l214"></a> </span><span class=cF1>if</span><span class=cF0> (num_hints)
|
||||
<a name="l215"></a> </span><span class=cF6>"Enter port number: \n"</span><span class=cF0>;
|
||||
<a name="l216"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(port_str, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l217"></a> }
|
||||
<a name="l218"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0> type == </span><span class=cF3>BDT_ATAPI</span><span class=cF0> && </span><span class=cF5>AHCIPortSignatureGet</span><span class=cF0>(</span><span class=cF5>Str2I64</span><span class=cF7>(</span><span class=cF0>port_str</span><span class=cF7>)</span><span class=cF0>) != </span><span class=cF3>AHCI_PxSIG_ATAPI</span><span class=cF0> ||
|
||||
<a name="l219"></a> type == </span><span class=cF3>BDT_ATA</span><span class=cF0> && </span><span class=cF5>AHCIPortSignatureGet</span><span class=cF0>(</span><span class=cF5>Str2I64</span><span class=cF7>(</span><span class=cF0>port_str</span><span class=cF7>)</span><span class=cF0>) != </span><span class=cF3>AHCI_PxSIG_ATA</span><span class=cF0> ||
|
||||
<a name="l220"></a> </span><span class=cFE>0</span><span class=cF0> > </span><span class=cF5>Str2I64</span><span class=cF0>(port_str) || </span><span class=cF5>Str2I64</span><span class=cF0>(port_str) > num_hints - </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l221"></a> </span><span class=cF7>)</span><span class=cF0> &&
|
||||
<a name="l222"></a> </span><span class=cF7>(</span><span class=cF0>type != </span><span class=cF3>BDT_ATAPI</span><span class=cF0> || !boot_drive_let</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l223"></a>
|
||||
<a name="l224"></a> port = </span><span class=cF5>Str2I64</span><span class=cF0>(port_str);
|
||||
<a name="l225"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l226"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l227"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"bd = BlkDevNextFreeSlot('%C', %d);\n\";\n"</span><span class=cF0>, drv_let, type);
|
||||
<a name="l228"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd = BlkDevNextFreeSlot(\'%C\', %d);\n"</span><span class=cF0>, drv_let, type);
|
||||
<a name="l229"></a> </span><span class=cF1>if</span><span class=cF0> (port != -</span><span class=cFE>1</span><span class=cF0> && *port_str)
|
||||
<a name="l230"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l231"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"AHCIPortInit(bd, &blkdev.ahci_hba->ports[%d], %d);\n\";\n"</span><span class=cF0>, port, port);
|
||||
<a name="l232"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"AHCIPortInit(bd, &blkdev.ahci_hba->ports[%d], %d);\n"</span><span class=cF0>, port, port);
|
||||
<a name="l233"></a>
|
||||
<a name="l234"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l235"></a>
|
||||
<a name="l236"></a> </span><span class=cF1>switch</span><span class=cF0> (type)
|
||||
<a name="l237"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l238"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_RAM</span><span class=cF0>:
|
||||
<a name="l239"></a> </span><span class=cF1>if</span><span class=cF0> (!*addr_buf) </span><span class=cF5>StrCopy</span><span class=cF0>(addr_buf, </span><span class=cF6>"0"</span><span class=cF0>);
|
||||
<a name="l240"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->RAM_disk = %s;\n"</span><span class=cF0>, addr_buf);
|
||||
<a name="l241"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>:
|
||||
<a name="l242"></a> </span><span class=cF1>if</span><span class=cF0> (!*blks_buf) </span><span class=cF5>StrCopy</span><span class=cF0>(blks_buf, </span><span class=cF6>"0"</span><span class=cF0>);
|
||||
<a name="l243"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->max_blk = (%s) - 1;\n"</span><span class=cF0>, blks_buf);
|
||||
<a name="l244"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->drv_offset = 19 << 2 + (DVD_BLK_SIZE * 2 + DVD_BOOT_LOADER_SIZE) / BLK_SIZE;\n"</span><span class=cF0>);
|
||||
<a name="l245"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l246"></a>
|
||||
<a name="l247"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>:
|
||||
<a name="l248"></a> filename2 = </span><span class=cF5>FileNameAbs</span><span class=cF0>(filename);
|
||||
<a name="l249"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->file_disk_name = SysStrNew(\"%s\");\n"</span><span class=cF0>, filename2);
|
||||
<a name="l187"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l188"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>()</span><span class=cF0>
|
||||
<a name="l189"></a> doc = </span><span class=cF5>DocNew</span><span class=cF0>;
|
||||
<a name="l190"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"CBlkDev *bd;\n"</span><span class=cF0>);
|
||||
<a name="l191"></a> make_free = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l192"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l193"></a> prt_num = </span><span class=cF3>I64_MIN</span><span class=cF0>;
|
||||
<a name="l194"></a> port = -</span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l195"></a> </span><span class=cF1>switch</span><span class=cF0> (type)
|
||||
<a name="l196"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l197"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_RAM</span><span class=cF0>:
|
||||
<a name="l198"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l199"></a> </span><span class=cF6>"Addr of RAM disk ($PURPLE$<ENTER>$FG$ to MAlloc):"</span><span class=cF0>;
|
||||
<a name="l200"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l201"></a> </span><span class=cF6>"Addr of RAM disk (<ENTER> to MAlloc):"</span><span class=cF0>;
|
||||
<a name="l202"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(addr_buf, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l203"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>:
|
||||
<a name="l204"></a> </span><span class=cF6>"Blks of 512 bytes:"</span><span class=cF0>;
|
||||
<a name="l205"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(blks_buf, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l206"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l207"></a>
|
||||
<a name="l208"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>:
|
||||
<a name="l209"></a> filename = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"File Name:"</span><span class=cF0>);
|
||||
<a name="l210"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l211"></a>
|
||||
<a name="l212"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATA</span><span class=cF0>:
|
||||
<a name="l213"></a> prt_num = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Partition Num (Default=All):"</span><span class=cF0>, prt_num);
|
||||
<a name="l214"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
|
||||
<a name="l215"></a> num_hints = </span><span class=cF5>SATARep</span><span class=cF0>(type);
|
||||
<a name="l216"></a> </span><span class=cF1>if</span><span class=cF0> (type == </span><span class=cF3>BDT_ATAPI</span><span class=cF0> && boot_drive_let)
|
||||
<a name="l217"></a> </span><span class=cF6>"<ENTER> to use booted CD/DVD\n"</span><span class=cF0>; </span><span class=cF2>//Only </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l218"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l219"></a> {
|
||||
<a name="l220"></a> </span><span class=cF1>if</span><span class=cF0> (num_hints)
|
||||
<a name="l221"></a> </span><span class=cF6>"Enter port number: \n"</span><span class=cF0>;
|
||||
<a name="l222"></a> </span><span class=cF5>StrNGet</span><span class=cF0>(port_str, </span><span class=cF3>STR_LEN</span><span class=cF0>);
|
||||
<a name="l223"></a> }
|
||||
<a name="l224"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0> type == </span><span class=cF3>BDT_ATAPI</span><span class=cF0> && </span><span class=cF5>AHCIPortSignatureGet</span><span class=cF0>(</span><span class=cF5>Str2I64</span><span class=cF7>(</span><span class=cF0>port_str</span><span class=cF7>)</span><span class=cF0>) != </span><span class=cF3>AHCI_PxSIG_ATAPI</span><span class=cF0> ||
|
||||
<a name="l225"></a> type == </span><span class=cF3>BDT_ATA</span><span class=cF0> && </span><span class=cF5>AHCIPortSignatureGet</span><span class=cF0>(</span><span class=cF5>Str2I64</span><span class=cF7>(</span><span class=cF0>port_str</span><span class=cF7>)</span><span class=cF0>) != </span><span class=cF3>AHCI_PxSIG_ATA</span><span class=cF0> ||
|
||||
<a name="l226"></a> </span><span class=cFE>0</span><span class=cF0> > </span><span class=cF5>Str2I64</span><span class=cF0>(port_str) || </span><span class=cF5>Str2I64</span><span class=cF0>(port_str) > num_hints - </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l227"></a> </span><span class=cF7>)</span><span class=cF0> &&
|
||||
<a name="l228"></a> </span><span class=cF7>(</span><span class=cF0>type != </span><span class=cF3>BDT_ATAPI</span><span class=cF0> || !boot_drive_let</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l229"></a>
|
||||
<a name="l230"></a> port = </span><span class=cF5>Str2I64</span><span class=cF0>(port_str);
|
||||
<a name="l231"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l232"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l233"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"bd = BlkDevNextFreeSlot('%C', %d);\n\";\n"</span><span class=cF0>, drv_let, type);
|
||||
<a name="l234"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd = BlkDevNextFreeSlot(\'%C\', %d);\n"</span><span class=cF0>, drv_let, type);
|
||||
<a name="l235"></a> </span><span class=cF1>if</span><span class=cF0> (port != -</span><span class=cFE>1</span><span class=cF0> && *port_str)
|
||||
<a name="l236"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l237"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"AHCIPortInit(bd, &blkdev.ahci_hba->ports[%d], %d);\n\";\n"</span><span class=cF0>, port, port);
|
||||
<a name="l238"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"AHCIPortInit(bd, &blkdev.ahci_hba->ports[%d], %d);\n"</span><span class=cF0>, port, port);
|
||||
<a name="l239"></a>
|
||||
<a name="l240"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l241"></a>
|
||||
<a name="l242"></a> </span><span class=cF1>switch</span><span class=cF0> (type)
|
||||
<a name="l243"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l244"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_RAM</span><span class=cF0>:
|
||||
<a name="l245"></a> </span><span class=cF1>if</span><span class=cF0> (!*addr_buf) </span><span class=cF5>StrCopy</span><span class=cF0>(addr_buf, </span><span class=cF6>"0"</span><span class=cF0>);
|
||||
<a name="l246"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->RAM_disk = %s;\n"</span><span class=cF0>, addr_buf);
|
||||
<a name="l247"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>:
|
||||
<a name="l248"></a> </span><span class=cF1>if</span><span class=cF0> (!*blks_buf) </span><span class=cF5>StrCopy</span><span class=cF0>(blks_buf, </span><span class=cF6>"0"</span><span class=cF0>);
|
||||
<a name="l249"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->max_blk = (%s) - 1;\n"</span><span class=cF0>, blks_buf);
|
||||
<a name="l250"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->drv_offset = 19 << 2 + (DVD_BLK_SIZE * 2 + DVD_BOOT_LOADER_SIZE) / BLK_SIZE;\n"</span><span class=cF0>);
|
||||
<a name="l251"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l252"></a>
|
||||
<a name="l253"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
|
||||
<a name="l254"></a> </span><span class=cF1>if</span><span class=cF0> (!*port_str && _doc)
|
||||
<a name="l255"></a> {
|
||||
<a name="l256"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"AHCIBootDVDProbeAll(bd);\n\";\n"</span><span class=cF0>);
|
||||
<a name="l257"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"AHCIBootDVDProbeAll(bd);\n"</span><span class=cF0>); </span><span class=cF2>//Only </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l253"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>:
|
||||
<a name="l254"></a> filename2 = </span><span class=cF5>FileNameAbs</span><span class=cF0>(filename);
|
||||
<a name="l255"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->file_disk_name = SysStrNew(\"%s\");\n"</span><span class=cF0>, filename2);
|
||||
<a name="l256"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"bd->drv_offset = 19 << 2 + (DVD_BLK_SIZE * 2 + DVD_BOOT_LOADER_SIZE) / BLK_SIZE;\n"</span><span class=cF0>);
|
||||
<a name="l257"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l258"></a>
|
||||
<a name="l259"></a> </span><span class=cF1>if</span><span class=cF0> (drv_let == boot_drive_let)
|
||||
<a name="l260"></a> make_free = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l261"></a> }
|
||||
<a name="l262"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l263"></a>
|
||||
<a name="l264"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATA</span><span class=cF0>:
|
||||
<a name="l265"></a> </span><span class=cF1>if</span><span class=cF0> (_caller_is_prtdisk)
|
||||
<a name="l266"></a> {
|
||||
<a name="l267"></a> </span><span class=cF6>"\nReformat WHOLE drive!"</span><span class=cF0>;
|
||||
<a name="l268"></a> whole_drive = </span><span class=cF5>YorN</span><span class=cF0>;
|
||||
<a name="l269"></a> }
|
||||
<a name="l270"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l271"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l272"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"BlkDevAdd(bd, 0x%0X, %Z, %Z);\n\";\n"</span><span class=cF0>, prt_num, whole_drive, </span><span class=cF6>"ST_FALSE_TRUE"</span><span class=cF0>, make_free, </span><span class=cF6>"ST_FALSE_TRUE"</span><span class=cF0>);
|
||||
<a name="l273"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"BlkDevAdd(bd, 0x%0X, %d, %d);\n"</span><span class=cF0>, prt_num, whole_drive, make_free);
|
||||
<a name="l274"></a> </span><span class=cF1>if</span><span class=cF0> (_doc) </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l275"></a> count++;
|
||||
<a name="l276"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l277"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l301"><span class=cF4>Mount</span></a><span class=cF2>()</span><span class=cF0>
|
||||
<a name="l278"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>count = </span><span class=cF5>ExeDoc</span><span class=cF0>(doc)</span><span class=cF7>)</span><span class=cF0> && whole_drive)
|
||||
<a name="l279"></a> {
|
||||
<a name="l280"></a> </span><span class=cF1>if</span><span class=cF0> (_caller_is_prtdisk)
|
||||
<a name="l281"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l282"></a> res = drv_let;
|
||||
<a name="l283"></a> </span><span class=cF5>DiskPart</span><span class=cF0>(drv_let, </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>); </span><span class=cF2>//First mount whole drive.</span><span class=cF0>
|
||||
<a name="l284"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l285"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l286"></a> </span><span class=cF5>DiskPart</span><span class=cF0>(drv_let);
|
||||
<a name="l287"></a> }
|
||||
<a name="l288"></a> </span><span class=cF5>DocDel</span><span class=cF0>(doc);
|
||||
<a name="l289"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l290"></a> }
|
||||
<a name="l291"></a> total += count;
|
||||
<a name="l292"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l293"></a> </span><span class=cF1>while</span><span class=cF0> (count && !_caller_is_prtdisk || !total && _doc); </span><span class=cF2>//At least 1 if Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l294"></a>
|
||||
<a name="l295"></a> </span><span class=cF5>Free</span><span class=cF0>(filename);
|
||||
<a name="l296"></a> </span><span class=cF5>Free</span><span class=cF0>(filename2);
|
||||
<a name="l297"></a>
|
||||
<a name="l298"></a> </span><span class=cF1>return</span><span class=cF0> res;
|
||||
<a name="l299"></a>}
|
||||
<a name="l259"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0>:
|
||||
<a name="l260"></a> </span><span class=cF1>if</span><span class=cF0> (!*port_str && _doc)
|
||||
<a name="l261"></a> {
|
||||
<a name="l262"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"AHCIBootDVDProbeAll(bd);\n\";\n"</span><span class=cF0>);
|
||||
<a name="l263"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"AHCIBootDVDProbeAll(bd);\n"</span><span class=cF0>); </span><span class=cF2>//Only </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l264"></a>
|
||||
<a name="l265"></a> </span><span class=cF1>if</span><span class=cF0> (drv_let == boot_drive_let)
|
||||
<a name="l266"></a> make_free = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l267"></a> }
|
||||
<a name="l268"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l269"></a>
|
||||
<a name="l270"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>BDT_ATA</span><span class=cF0>:
|
||||
<a name="l271"></a> </span><span class=cF1>if</span><span class=cF0> (_caller_is_prtdisk)
|
||||
<a name="l272"></a> {
|
||||
<a name="l273"></a> </span><span class=cF6>"\nReformat WHOLE drive!"</span><span class=cF0>;
|
||||
<a name="l274"></a> whole_drive = </span><span class=cF5>YorN</span><span class=cF0>;
|
||||
<a name="l275"></a> }
|
||||
<a name="l276"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l277"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l278"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"\"BlkDevAdd(bd, 0x%0X, %Z, %Z);\n\";\n"</span><span class=cF0>, prt_num, whole_drive, </span><span class=cF6>"ST_FALSE_TRUE"</span><span class=cF0>, make_free, </span><span class=cF6>"ST_FALSE_TRUE"</span><span class=cF0>);
|
||||
<a name="l279"></a> </span><span class=cF5>DocPrint</span><span class=cF0>(doc, </span><span class=cF6>"BlkDevAdd(bd, 0x%0X, %d, %d);\n"</span><span class=cF0>, prt_num, whole_drive, make_free);
|
||||
<a name="l280"></a> </span><span class=cF1>if</span><span class=cF0> (_doc) </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l281"></a> count++;
|
||||
<a name="l282"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l283"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/Mount.CC.html#l307"><span class=cF4>Mount</span></a><span class=cF2>()</span><span class=cF0>
|
||||
<a name="l284"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>count = </span><span class=cF5>ExeDoc</span><span class=cF0>(doc)</span><span class=cF7>)</span><span class=cF0> && whole_drive)
|
||||
<a name="l285"></a> {
|
||||
<a name="l286"></a> </span><span class=cF1>if</span><span class=cF0> (_caller_is_prtdisk)
|
||||
<a name="l287"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l288"></a> res = drv_let;
|
||||
<a name="l289"></a> </span><span class=cF5>DiskPart</span><span class=cF0>(drv_let, </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>); </span><span class=cF2>//First mount whole drive.</span><span class=cF0>
|
||||
<a name="l290"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l291"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l292"></a> </span><span class=cF5>DiskPart</span><span class=cF0>(drv_let);
|
||||
<a name="l293"></a> }
|
||||
<a name="l294"></a> </span><span class=cF5>DocDel</span><span class=cF0>(doc);
|
||||
<a name="l295"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l296"></a> }
|
||||
<a name="l297"></a> total += count;
|
||||
<a name="l298"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l299"></a> </span><span class=cF1>while</span><span class=cF0> (count && !_caller_is_prtdisk || !total && _doc); </span><span class=cF2>//At least 1 if Called by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>::/Kernel/KConfig.CC</span></a><span class=cF0>
|
||||
<a name="l300"></a>
|
||||
<a name="l301"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>Mount</span><span class=cF0>(</span><span class=cF1>Bool</span><span class=cF0> caller_is_prtdisk=</span><span class=cF3>FALSE</span><span class=cF0>)
|
||||
<a name="l302"></a>{</span><span class=cF2>//Mount drives. Called from </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/DiskPart.CC.html#l43"><span class=cF4>DiskPart(Mount)</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l303"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF5>Mount2</span><span class=cF0>(</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, caller_is_prtdisk);
|
||||
<a name="l304"></a>}
|
||||
<a name="l305"></a>
|
||||
<a name="l306"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Unmount</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let=</span><span class=cFE>0</span><span class=cF0>)
|
||||
<a name="l307"></a>{</span><span class=cF2>//Unmount drive(s).</span><span class=cF0>
|
||||
<a name="l308"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(</span><span class=cF5>Letter2BlkDev</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l309"></a>}
|
||||
<a name="l310"></a>
|
||||
<a name="l311"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>MountFile</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *filename)
|
||||
<a name="l312"></a>{</span><span class=cF2>//Mount ISO.C file.</span><span class=cF0>
|
||||
<a name="l313"></a> </span><span class=cF1>U8</span><span class=cF0> *filename2 = </span><span class=cF5>ExtDefault</span><span class=cF0>(filename, </span><span class=cF6>"ISO.C"</span><span class=cF0>), *filename3 = </span><span class=cF5>FileNameAbs</span><span class=cF0>(filename2);
|
||||
<a name="l314"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive = </span><span class=cF5>DriveMakeFreeSlot</span><span class=cF0>(</span><span class=cF5>DriveNextFreeLet</span><span class=cF7>(</span><span class=cF6>'M'</span><span class=cF7>)</span><span class=cF0>); </span><span class=cF2>//First </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3271"><span class=cF4>BDT_ISO_FILE_READ</span></a><span class=cF0>
|
||||
<a name="l315"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd = </span><span class=cF5>BlkDevNextFreeSlot</span><span class=cF0>(drive->drv_let, </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>);
|
||||
<a name="l301"></a> </span><span class=cF5>Free</span><span class=cF0>(filename);
|
||||
<a name="l302"></a> </span><span class=cF5>Free</span><span class=cF0>(filename2);
|
||||
<a name="l303"></a>
|
||||
<a name="l304"></a> </span><span class=cF1>return</span><span class=cF0> res;
|
||||
<a name="l305"></a>}
|
||||
<a name="l306"></a>
|
||||
<a name="l307"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>Mount</span><span class=cF0>(</span><span class=cF1>Bool</span><span class=cF0> caller_is_prtdisk=</span><span class=cF3>FALSE</span><span class=cF0>)
|
||||
<a name="l308"></a>{</span><span class=cF2>//Mount drives. Called from </span><a href="https://zeal-operating-system.github.io/ZealOS/System/BlkDev/DiskPart.CC.html#l43"><span class=cF4>DiskPart(Mount)</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l309"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF5>Mount2</span><span class=cF0>(</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF3>NULL</span><span class=cF0>, caller_is_prtdisk);
|
||||
<a name="l310"></a>}
|
||||
<a name="l311"></a>
|
||||
<a name="l312"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Unmount</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> drv_let=</span><span class=cFE>0</span><span class=cF0>)
|
||||
<a name="l313"></a>{</span><span class=cF2>//Unmount drive(s).</span><span class=cF0>
|
||||
<a name="l314"></a> </span><span class=cF5>BlkDevDel</span><span class=cF0>(</span><span class=cF5>Letter2BlkDev</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l315"></a>}
|
||||
<a name="l316"></a>
|
||||
<a name="l317"></a> bd->drv_offset = </span><span class=cFE>19</span><span class=cF0> << </span><span class=cFE>2</span><span class=cF0> + (</span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0> * </span><span class=cFE>2</span><span class=cF0> + </span><span class=cF3>DVD_BOOT_LOADER_SIZE</span><span class=cF0>) / </span><span class=cF3>BLK_SIZE</span><span class=cF0>;
|
||||
<a name="l318"></a> bd->file_disk_name = </span><span class=cF5>SysStrNew</span><span class=cF0>(filename3);
|
||||
<a name="l319"></a> </span><span class=cF5>BlkDevAdd</span><span class=cF0>(bd,, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>);
|
||||
<a name="l320"></a> </span><span class=cF5>Free</span><span class=cF0>(filename3);
|
||||
<a name="l321"></a> </span><span class=cF5>Free</span><span class=cF0>(filename2);
|
||||
<a name="l317"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>MountFile</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *filename)
|
||||
<a name="l318"></a>{</span><span class=cF2>//Mount ISO.C file.</span><span class=cF0>
|
||||
<a name="l319"></a> </span><span class=cF1>U8</span><span class=cF0> *filename2 = </span><span class=cF5>ExtDefault</span><span class=cF0>(filename, </span><span class=cF6>"ISO.C"</span><span class=cF0>), *filename3 = </span><span class=cF5>FileNameAbs</span><span class=cF0>(filename2);
|
||||
<a name="l320"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive = </span><span class=cF5>DriveMakeFreeSlot</span><span class=cF0>(</span><span class=cF5>DriveNextFreeLet</span><span class=cF7>(</span><span class=cF6>'M'</span><span class=cF7>)</span><span class=cF0>); </span><span class=cF2>//First </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3280"><span class=cF4>BDT_ISO_FILE_READ</span></a><span class=cF0>
|
||||
<a name="l321"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd = </span><span class=cF5>BlkDevNextFreeSlot</span><span class=cF0>(drive->drv_let, </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0>);
|
||||
<a name="l322"></a>
|
||||
<a name="l323"></a> </span><span class=cF1>return</span><span class=cF0> drive->drv_let;
|
||||
<a name="l324"></a>}
|
||||
<a name="l323"></a> bd->drv_offset = </span><span class=cFE>19</span><span class=cF0> << </span><span class=cFE>2</span><span class=cF0> + (</span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0> * </span><span class=cFE>2</span><span class=cF0> + </span><span class=cF3>DVD_BOOT_LOADER_SIZE</span><span class=cF0>) / </span><span class=cF3>BLK_SIZE</span><span class=cF0>;
|
||||
<a name="l324"></a> bd->file_disk_name = </span><span class=cF5>SysStrNew</span><span class=cF0>(filename3);
|
||||
<a name="l325"></a> </span><span class=cF5>BlkDevAdd</span><span class=cF0>(bd,, </span><span class=cF3>TRUE</span><span class=cF0>, </span><span class=cF3>TRUE</span><span class=cF0>);
|
||||
<a name="l326"></a> </span><span class=cF5>Free</span><span class=cF0>(filename3);
|
||||
<a name="l327"></a> </span><span class=cF5>Free</span><span class=cF0>(filename2);
|
||||
<a name="l328"></a>
|
||||
<a name="l329"></a> </span><span class=cF1>return</span><span class=cF0> drive->drv_let;
|
||||
<a name="l330"></a>}
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -309,7 +309,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l282"></a></span><span class=cF2>Default lists attributes.</span><span class=cF0>
|
||||
<a name="l283"></a></span><span class=cF2>attr: "+?" =show current</span><span class=cF0>
|
||||
<a name="l284"></a></span><span class=cF2>"+T" =resident</span><span class=cF4>
|
||||
<a name="l285"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3174"><span class=cF4>RS_ATTR_READ_ONLY</span></a><span class=cF2> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l187"><span class=cF4>ST_FILE_ATTRS</span></a><span class=cF0>
|
||||
<a name="l285"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3183"><span class=cF4>RS_ATTR_READ_ONLY</span></a><span class=cF2> </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KDefine.CC.html#l187"><span class=cF4>ST_FILE_ATTRS</span></a><span class=cF0>
|
||||
<a name="l286"></a></span><span class=cF2>To Set DateL:</span><span class=cF0>
|
||||
<a name="l287"></a></span><span class=cF2>Touch(filename,"",,datetime);</span><span class=cF0>
|
||||
<a name="l288"></a></span><span class=cF2>*/</span><span class=cF0>
|
||||
|
|
|
@ -162,7 +162,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l135"></a>}
|
||||
<a name="l136"></a>
|
||||
<a name="l137"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>FileCount</span><span class=cF0>(</span><span class=cF9>CDirEntry</span><span class=cF0> *tmpde)
|
||||
<a name="l138"></a>{</span><span class=cF2>//Count of files in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3195"><span class=cF4>CDirEntry</span></a><span class=cF2> tree.</span><span class=cF0>
|
||||
<a name="l138"></a>{</span><span class=cF2>//Count of files in </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3204"><span class=cF4>CDirEntry</span></a><span class=cF2> tree.</span><span class=cF0>
|
||||
<a name="l139"></a> </span><span class=cF9>I64</span><span class=cF0> count = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l140"></a>
|
||||
<a name="l141"></a> </span><span class=cF1>while</span><span class=cF0> (tmpde)
|
||||
|
|
|
@ -195,7 +195,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l168"></a> </span><span class=cF1>LOOP</span><span class=cF0> @@35
|
||||
<a name="l169"></a> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>DS</span><span class=cF0>
|
||||
<a name="l170"></a>
|
||||
<a name="l171"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1130"><span class=cF4>AHCIBootDVDProbeAll</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l171"></a></span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskAHCI.CC.html#l1133"><span class=cF4>AHCIBootDVDProbeAll</span></a><span class=cF2>().</span><span class=cF0>
|
||||
<a name="l172"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>EBX</span><span class=cF0>, </span><span class=cF9>U32</span><span class=cF0> [</span><span class=cFD>BDVD_BLK_LO</span><span class=cF0> - </span><span class=cFD>BDVD_START</span><span class=cF0>]
|
||||
<a name="l173"></a> </span><span class=cF1>MOV</span><span class=cF0> </span><span class=cFC>AX</span><span class=cF0>, </span><span class=cF9>U16</span><span class=cF0> [</span><span class=cFD>BDVD_SHIFT_BLKS</span><span class=cF0> - </span><span class=cFD>BDVD_START</span><span class=cF0>]
|
||||
<a name="l174"></a> </span><span class=cF1>SHL</span><span class=cF0> </span><span class=cFC>EAX</span><span class=cF0>, </span><span class=cFE>16</span><span class=cF0>
|
||||
|
|
|
@ -183,7 +183,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l156"></a> </span><span class=cF9>I64</span><span class=cF0> i, res, root_count, root_dir_blks, bitmap_blks, bitmap_blks1;
|
||||
<a name="l157"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> *tmpde;
|
||||
<a name="l158"></a> </span><span class=cF1>U8</span><span class=cF0> buf[</span><span class=cF3>STR_LEN</span><span class=cF0>], *iso_filename, *src_dir, *stage2_filename;
|
||||
<a name="l159"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive = </span><span class=cF5>DriveMakeFreeSlot</span><span class=cF0>(</span><span class=cF5>DriveNextFreeLet</span><span class=cF7>(</span><span class=cF6>'Q'</span><span class=cF7>)</span><span class=cF0>); </span><span class=cF2>//First </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3272"><span class=cF4>BDT_ISO_FILE_WRITE</span></a><span class=cF0>
|
||||
<a name="l159"></a> </span><span class=cF9>CDrive</span><span class=cF0> *drive = </span><span class=cF5>DriveMakeFreeSlot</span><span class=cF0>(</span><span class=cF5>DriveNextFreeLet</span><span class=cF7>(</span><span class=cF6>'Q'</span><span class=cF7>)</span><span class=cF0>); </span><span class=cF2>//First </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3281"><span class=cF4>BDT_ISO_FILE_WRITE</span></a><span class=cF0>
|
||||
<a name="l160"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd = </span><span class=cF5>BlkDevNextFreeSlot</span><span class=cF0>(drive->drv_let, </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>);
|
||||
<a name="l161"></a>
|
||||
<a name="l162"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsDir</span><span class=cF7>(</span><span class=cF0>_src_dir</span><span class=cF7>)</span><span class=cF0>)
|
||||
|
|
|
@ -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#l3738"><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#l3747"><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->next_ctrl;
|
||||
|
|
|
@ -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#l4357"><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#l4366"><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;
|
||||
|
|
|
@ -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#l4290"><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#l4299"><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->color = </span><span class=cF3>BLACK</span><span class=cF0>;
|
||||
<a name="l150"></a> dc->color2 = </span><span class=cF3>BLACK</span><span class=cF0>;
|
||||
<a name="l151"></a> dc->bkcolor = </span><span class=cF3>BLACK</span><span class=cF0>;
|
||||
|
|
|
@ -256,7 +256,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l229"></a> </span><span class=cF6>"Kernel\t:%08X-%08X\n"</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>"$ID,-2$$BLACK$High Memory\t:00100000-%08X$FG$\n"</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
|
||||
<a name="l232"></a> </span><span class=cF6>"</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4111"><span class=cF4>SYS_FIXED_AREA</span></a><span class=cF6>\t:%08X-%08X\n"</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>"</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4120"><span class=cF4>SYS_FIXED_AREA</span></a><span class=cF6>\t:%08X-%08X\n"</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>"</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"</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>)
|
||||
|
|
|
@ -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#l4366"><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#l4375"><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#l4366"><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#l4375"><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>
|
||||
|
|
10909
docs/index.html
10909
docs/index.html
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,8 @@
|
|||
$WW,1$$FG,5$$TX+CX,"ChangeLog"$$FG$
|
||||
$IV,1$----08/16/21 00:17:55----$IV,0$
|
||||
* Added $LK+PU,"CAtapiCloseCmd",A="MN:CAtapiCloseCmd"$.
|
||||
* Add try-catch blocks to $LK+PU,"SATARep",A="FF:::/System/BlkDev/Mount.CC,try"$ and $LK+PU,"AHCIBootDVDProbeAll",A="MN:AHCIBootDVDProbeAll"$.
|
||||
|
||||
$IV,1$----08/15/21 01:51:08----$IV,0$
|
||||
* Raised version number to 0.16.
|
||||
* Changed $LK+PU,"DVDImageWrite",A="FF:::/Kernel/BlkDev/DiskCDDVD.CC,buf = MAlloc"$ to single-buffer single-threaded instead of dual-buffer multi-threaded.
|
||||
|
@ -16,7 +20,7 @@ $IV,1$----08/13/21 13:21:32----$IV,0$
|
|||
|
||||
$IV,1$----08/09/21 01:54:50----$IV,0$
|
||||
* Raised version number to 0.14.
|
||||
* Implemented $LK+PU,"AHCIAtapiModeWriteSet",A="MN:AHCIAtapiModeWriteSet"$ to set up ATAPI disc burner write configurations.
|
||||
* Implemented $LK+PU,"AHCIAtapiModeWriteSelect",A="MN:AHCIAtapiModeWriteSelect"$ to set up ATAPI disc burner write configurations.
|
||||
|
||||
$IV,1$----08/08/21 20:30:08----$IV,0$
|
||||
* Implemented $LK+PU,"AHCIAtapiBlank",A="MN:AHCIAtapiBlank"$, default is minimal disc blank.
|
||||
|
|
|
@ -342,6 +342,7 @@ Bool AHCIAtapiClose(CBlkDev *bd, I64 close_field=0x200, I64 track=0)
|
|||
CAHCIPort *port = bd->ahci_port;
|
||||
I64 cmd_slot = AHCIPortCmdSlotGet(bd->port_num);
|
||||
CPortCmdHeader *cmd_header = AHCIPortActiveHeaderGet(bd->port_num, cmd_slot);
|
||||
CAtapiCloseCmd close_cmd;
|
||||
|
||||
if (port->signature != AHCI_PxSIG_ATAPI)
|
||||
{
|
||||
|
@ -359,10 +360,12 @@ Bool AHCIAtapiClose(CBlkDev *bd, I64 close_field=0x200, I64 track=0)
|
|||
cmd_fis->type = FISt_H2D;
|
||||
Bts(&cmd_fis->desc, AHCI_CF_DESCf_C); //Set Command bit in H2D FIS.
|
||||
cmd_fis->command = ATA_PACKET;
|
||||
cmd_table->acmd[0] = ATAPI_CLOSE_TRACK_SESSION >> 8;
|
||||
cmd_table->acmd[2] = close_field.u8[1];
|
||||
cmd_table->acmd[4] = track.u8[1];
|
||||
cmd_table->acmd[5] = track.u8[0];
|
||||
|
||||
MemSet(&close_cmd, 0, sizeof(CAtapiCloseCmd));
|
||||
close_cmd.command = ATAPI_CLOSE_TRACK_SESSION >> 8;
|
||||
close_cmd.code = close_field.u8[1];
|
||||
close_cmd.track_num = EndianU16(track);
|
||||
MemCopy(&cmd_table->acmd, &close_cmd, sizeof(CAtapiCloseCmd));
|
||||
|
||||
AHCIPortWait(bd->port_num, tS + 2);
|
||||
Bts(&port->cmd_issue, cmd_slot); //Issue the command.
|
||||
|
@ -419,7 +422,7 @@ Bool AHCIAtapiBlank(CBlkDev *bd, Bool minimal=TRUE)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool AHCIAtapiModeWriteSet(CBlkDev *bd)
|
||||
Bool AHCIAtapiModeWriteSelect(CBlkDev *bd)
|
||||
{ // Set ATAPI drive write configuration.
|
||||
CPortCmdTable *cmd_table;
|
||||
CFisH2D *cmd_fis;
|
||||
|
@ -435,12 +438,12 @@ Bool AHCIAtapiModeWriteSet(CBlkDev *bd)
|
|||
}
|
||||
|
||||
mode_list = CAlloc(sizeof(CAtapiModeWriteList), sys_task->code_heap);
|
||||
mode_list->page.code = 0x05;
|
||||
mode_list->page.length = 0x32;
|
||||
mode_list->page.type = 0x00; // packet mode
|
||||
mode_list->page.mode = 4 | 1 << 5; // set cd track mode, set Fixed Packet Size bit
|
||||
mode_list->page.block_type = 8; // mode 1: 2048-size blocks of data
|
||||
mode_list->page.packet_size = EndianU32(16);
|
||||
mode_list->page.code = 0x05; // Write Parameters mode page code
|
||||
mode_list->page.length = 0x32; // 0x32 indicates no support for Vendor Specific field.
|
||||
mode_list->page.type = 0x00; // Packet/Incremental mode
|
||||
mode_list->page.mode = 4 | 1 << 5; // Set CD Track Mode, set Fixed Packet Size bit
|
||||
mode_list->page.block_type = 8; // Mode 1: 2048-size blocks of data
|
||||
mode_list->page.packet_size = EndianU32(16);// Number of User Data Blocks per Fixed Packet. DVD media default: 16.
|
||||
|
||||
Bts(&cmd_header->desc, AHCI_CH_DESCf_A);
|
||||
|
||||
|
@ -1145,9 +1148,17 @@ Bool AHCIBootDVDProbeAll(CBlkDev *bd)
|
|||
{
|
||||
"AHCI: Probing ATAPI drive at port %d\n", i;
|
||||
|
||||
AHCIPortInit(bd, port, i);
|
||||
try
|
||||
{
|
||||
AHCIPortInit(bd, port, i);
|
||||
|
||||
AHCIAtapiBlksRead(bd, buf, sys_boot_blk, 1, FALSE);
|
||||
AHCIAtapiBlksRead(bd, buf, sys_boot_blk, 1, FALSE);
|
||||
}
|
||||
catch
|
||||
{
|
||||
Fs->catch_except = TRUE;
|
||||
"AHCI: Error at Port %d", i;
|
||||
}
|
||||
|
||||
kernel = buf + sys_boot_src.u16[1] << BLK_SIZE_BITS;
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ U0 DVDImageWrite(U8 dvd_drive_let, U8 *in_name=NULL, I64 media_type=MT_DVD)
|
|||
AHCIPortWait(bd->port_num, tS + 2);
|
||||
AHCIAtapiBlank(bd);
|
||||
bd->flags |= BDF_LAST_WAS_WRITE;
|
||||
AHCIAtapiModeWriteSet(bd);
|
||||
AHCIAtapiModeWriteSelect(bd);
|
||||
|
||||
progress1 = 0;
|
||||
progress1_max = 1;
|
||||
|
|
|
@ -2914,6 +2914,15 @@ class CAtapiWriteCmd
|
|||
U16 count;
|
||||
};
|
||||
|
||||
class CAtapiCloseCmd
|
||||
{
|
||||
U8 command,
|
||||
reserved,
|
||||
code,
|
||||
reserved;
|
||||
U16 track_num;
|
||||
};
|
||||
|
||||
class CAtapiModeHeader
|
||||
{
|
||||
U16 data_length;
|
||||
|
|
|
@ -97,7 +97,13 @@ public I64 SATARep(I64 bd_type=BDT_NULL)
|
|||
else // ATA
|
||||
temp_blkdev->first_drive_let = 'C';
|
||||
|
||||
AHCIPortInit(temp_blkdev, port, i);
|
||||
try
|
||||
AHCIPortInit(temp_blkdev, port, i);
|
||||
catch
|
||||
{
|
||||
Fs->catch_except = TRUE;
|
||||
"Error at SATA Port %d", i;
|
||||
}
|
||||
"\n\t";
|
||||
|
||||
if (temp_blkdev->dev_id_record)
|
||||
|
|
|
@ -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,674");
|
||||
$ID,2$DefinePrint("DD_ZEALOS_LOC","94,700");
|
||||
$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);
|
||||
|
|
Loading…
Reference in a new issue