mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-04-08 08:48:36 +01:00
Fix raw-mode printing in MemBIOSRep, TaskRep, PCIRep, VideoRep, and MemPageRep.
Fix DriveRep reporting SATA port on non-AHCI drives. Remove CONFIG_DONT_PROBE. Remove lingering references to compression from documentation. Fix Talons incorrect millisecond variable name.
This commit is contained in:
parent
67479705de
commit
a01aa006cd
30 changed files with 1057 additions and 893 deletions
ZealOS-2021-08-04-22_31_23.iso
docs
Demo
Doc
BlkChain.DD.htmlChangeLog.DD.htmlCharter.DD.htmlFeatures.DD.htmlGRFiles.DD.htmlHelpIndex.DD.htmlMemoryOverview.DD.htmlStrategy.DD.htmlWelcome.DD.html
Kernel
System
index.htmlsrc
Demo/Games
Doc
Kernel
System
Binary file not shown.
|
@ -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,752LOC:"</span><span class=cF0>;
|
||||
<a name="l12"></a> </span><span class=cF6>"94,837LOC:"</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>
|
||||
|
|
|
@ -1094,13 +1094,13 @@ body {background-color:#fef1f0;}
|
|||
<a name="l1067"></a></span><span class=cF1>U0</span><span class=cF0> AnimateTask(</span><span class=cF9>I64</span><span class=cF0>)
|
||||
<a name="l1068"></a>{</span><span class=cF2>//Steadily moves the airplane forward.</span><span class=cF0>
|
||||
<a name="l1069"></a> </span><span class=cF9>I64</span><span class=cF0> i, *s2w, x1, y1, z1, dx, dy, dz, dd;
|
||||
<a name="l1070"></a> </span><span class=cF1>F64</span><span class=cF0> t0 = </span><span class=cF5>tS</span><span class=cF0>,</span><span class=cFB>mouse</span><span class=cF0>, theta, d;
|
||||
<a name="l1070"></a> </span><span class=cF1>F64</span><span class=cF0> t0 = </span><span class=cF5>tS</span><span class=cF0>, ms, theta, d;
|
||||
<a name="l1071"></a> Obj *tmpo;
|
||||
<a name="l1072"></a> Bird *tmpb;
|
||||
<a name="l1073"></a>
|
||||
<a name="l1074"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF3>TRUE</span><span class=cF0>)
|
||||
<a name="l1075"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l1076"></a> </span><span class=cFB>mouse</span><span class=cF0> = </span><span class=cFE>1000</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0);
|
||||
<a name="l1076"></a> ms = </span><span class=cFE>1000</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0);
|
||||
<a name="l1077"></a> t0 = </span><span class=cF5>tS</span><span class=cF0>;
|
||||
<a name="l1078"></a> </span><span class=cF1>if</span><span class=cF0> (!game_tf)
|
||||
<a name="l1079"></a> {
|
||||
|
@ -1114,9 +1114,9 @@ body {background-color:#fef1f0;}
|
|||
<a name="l1087"></a> dy = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l1088"></a> dz = </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1089"></a> </span><span class=cF5>Mat4x4MulXYZ</span><span class=cF0>(s2w, &dx, &dy, &dz);
|
||||
<a name="l1090"></a> x -= speed * </span><span class=cFB>mouse</span><span class=cF0> * COORDINATE_SCALE * dx / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1091"></a> y -= speed * </span><span class=cFB>mouse</span><span class=cF0> * COORDINATE_SCALE * dy / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1092"></a> z -= speed * </span><span class=cFB>mouse</span><span class=cF0> * COORDINATE_SCALE * dz / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1090"></a> x -= speed * ms * COORDINATE_SCALE * dx / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1091"></a> y -= speed * ms * COORDINATE_SCALE * dy / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1092"></a> z -= speed * ms * COORDINATE_SCALE * dz / </span><span class=cFE>1</span><span class=cF0> << </span><span class=cFE>16</span><span class=cF0>;
|
||||
<a name="l1093"></a> </span><span class=cF5>Free</span><span class=cF0>(s2w);
|
||||
<a name="l1094"></a> x1 = x / COORDINATE_SCALE;
|
||||
<a name="l1095"></a> y1 = y / COORDINATE_SCALE;
|
||||
|
@ -1129,10 +1129,10 @@ body {background-color:#fef1f0;}
|
|||
<a name="l1102"></a> </span><span class=cF1>if</span><span class=cF0> (invert_pitch)
|
||||
<a name="l1103"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l1104"></a> </span><span class=cF1>if</span><span class=cF0> (pitch < -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0>)
|
||||
<a name="l1105"></a> phi += </span><span class=cFB>mouse</span><span class=cF0> / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sign</span><span class=cF0>(</span><span class=cFE>3</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0> - phi);
|
||||
<a name="l1105"></a> phi += ms / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sign</span><span class=cF0>(</span><span class=cFE>3</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0> - phi);
|
||||
<a name="l1106"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l1107"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (pitch < -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0>)
|
||||
<a name="l1108"></a> phi += </span><span class=cFB>mouse</span><span class=cF0> / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sign</span><span class=cF0>(-</span><span class=cFE>3</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0> - phi);
|
||||
<a name="l1108"></a> phi += ms / </span><span class=cFE>1000</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sign</span><span class=cF0>(-</span><span class=cFE>3</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>8</span><span class=cF0> - phi);
|
||||
<a name="l1109"></a> WrapAngles;
|
||||
<a name="l1110"></a> }
|
||||
<a name="l1111"></a> speed = </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
|
||||
|
@ -1183,10 +1183,10 @@ body {background-color:#fef1f0;}
|
|||
<a name="l1156"></a> tmpb = b_head[i].next;
|
||||
<a name="l1157"></a> </span><span class=cF1>while</span><span class=cF0> (tmpb != &b_head[i])
|
||||
<a name="l1158"></a> {
|
||||
<a name="l1159"></a> tmpb->p.x += </span><span class=cFE>10</span><span class=cF0> * </span><span class=cFB>mouse</span><span class=cF0> / </span><span class=cFE>1000</span><span class=cF0> * MAP_SCALE * </span><span class=cF5>Cos</span><span class=cF0>(tmpb->theta);
|
||||
<a name="l1160"></a> tmpb->p.y += </span><span class=cFE>10</span><span class=cF0> * </span><span class=cFB>mouse</span><span class=cF0> / </span><span class=cFE>1000</span><span class=cF0> * MAP_SCALE * </span><span class=cF5>Sin</span><span class=cF0>(tmpb->theta);
|
||||
<a name="l1159"></a> tmpb->p.x += </span><span class=cFE>10</span><span class=cF0> * ms / </span><span class=cFE>1000</span><span class=cF0> * MAP_SCALE * </span><span class=cF5>Cos</span><span class=cF0>(tmpb->theta);
|
||||
<a name="l1160"></a> tmpb->p.y += </span><span class=cFE>10</span><span class=cF0> * ms / </span><span class=cFE>1000</span><span class=cF0> * MAP_SCALE * </span><span class=cF5>Sin</span><span class=cF0>(tmpb->theta);
|
||||
<a name="l1161"></a> tmpb->p.z = BIRD_ELEVATION * MAP_SCALE + elevations[tmpb->p.y / MAP_SCALE][tmpb->p.x / MAP_SCALE];
|
||||
<a name="l1162"></a> tmpb->theta += </span><span class=cFE>2</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> * </span><span class=cFB>mouse</span><span class=cF0> / </span><span class=cFE>1000</span><span class=cF0> / </span><span class=cFE>10</span><span class=cF0>;
|
||||
<a name="l1162"></a> tmpb->theta += </span><span class=cFE>2</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> * ms / </span><span class=cFE>1000</span><span class=cF0> / </span><span class=cFE>10</span><span class=cF0>;
|
||||
<a name="l1163"></a> tmpb = tmpb->next;
|
||||
<a name="l1164"></a> }
|
||||
<a name="l1165"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
|
|
|
@ -35,29 +35,28 @@ body {background-color:#fef1f0;}
|
|||
<a name="l8"></a>prevent commercialization and corruption. The toy spirit of the operating system will be preserved going into the future. Th
|
||||
<a name="l9"></a>e vision for this operating system was a modern Commodore 64, which was a fun toy.
|
||||
<a name="l10"></a>
|
||||
<a name="l11"></a>Doing whole file operations is the ZealOS way of doing thinks. It is the simplest and, ironically, the fastest. It is
|
||||
<a name="l11"></a>Doing whole file operations is the ZealOS way of doing things. It is the simplest and, ironically, the fastest. It is
|
||||
<a name="l12"></a>obnoxious in the characteristic way that ZealOS is obnoxious, flaunting massive modern resources in a way that makes old
|
||||
<a name="l13"></a>programmers protest.
|
||||
<a name="l14"></a>
|
||||
<a name="l15"></a>When doing large, whole-file operations, immediately memory fragmentation is a serious problem, but not so for allocations in
|
||||
<a name="l16"></a>the range under a Meg (with occasional larger ones).
|
||||
<a name="l17"></a>
|
||||
<a name="l18"></a>The file compression scheme in ZealOS only works on whole file operations and the </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDoc.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> format cannot have text tacked onto
|
||||
<a name="l19"></a>the end, since binary data is at the end.
|
||||
<a name="l20"></a>
|
||||
<a name="l21"></a>Terry didn't want to spoil fun, so of course offered a way to get awesome performance that is, ironically, superior. </span><span class=cF4>
|
||||
<a name="l22"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>() allow you to read a block offset from the start of a file. Since files are all contiguous, this is
|
||||
<a name="l23"></a>incredibly efficient. You just have to declare the desired file size when you create it with </span><a href="https://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="l24"></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="l25"></a>
|
||||
<a name="l26"></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#l3369"><span class=cF4>CDrive</span></a><span class=cF0>
|
||||
<a name="l27"></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="l28"></a>used for a database, or invent a file system.
|
||||
<a name="l29"></a>
|
||||
<a name="l30"></a>On the whole, the </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system with its whole-file-only limitation bring beautiful harmony. It beautifully captures
|
||||
<a name="l31"></a>the spirit of ZealOS with simplicity and, ironic speed, since contiguous is fastest.
|
||||
<a name="l32"></a>
|
||||
<a name="l33"></a></span><span class=cF8>
|
||||
<a name="l34"></a>* "Commodore 64" is a trademark owned by Polabe Holding NV.
|
||||
<a name="l18"></a>The </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDoc.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> format cannot have text tacked onto the end, since binary data is at the end.
|
||||
<a name="l19"></a>
|
||||
<a name="l20"></a>Terry didn't want to spoil fun, so of course offered a way to get awesome performance that is, ironically, superior. </span><span class=cF4>
|
||||
<a name="l21"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>() allow you to read a block offset from the start of a file. Since files are all contiguous, this is
|
||||
<a name="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#l3369"><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>
|
||||
<a name="l29"></a>On the whole, the </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system with its whole-file-only limitation bring beautiful harmony. It beautifully captures
|
||||
<a name="l30"></a>the spirit of ZealOS with simplicity and, ironic speed, since contiguous is fastest.
|
||||
<a name="l31"></a>
|
||||
<a name="l32"></a></span><span class=cF8>
|
||||
<a name="l33"></a>* "Commodore 64" is a trademark owned by Polabe Holding NV.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -28,7 +28,7 @@ body {background-color:#fef1f0;}
|
|||
<pre style="font-family:monospace;font-size:12pt">
|
||||
<a name="l1"></a><span class=cF5> ChangeLog</span><span class=cF0>
|
||||
<a name="l2"></a></span><span class=c0F>----08/04/21 14:29:24----</span><span class=cF0>
|
||||
<a name="l3"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l391"><span class=cF4>DriveRep</span></a><span class=cF0> to report AHCI SATA port number where IDE base0, base1, and unit were displayed.
|
||||
<a name="l3"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l392"><span class=cF4>DriveRep</span></a><span class=cF0> to report AHCI SATA port number where IDE base0, base1, and unit were displayed.
|
||||
<a name="l4"></a>* Improved </span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/Lex.CC.html#l1268"><span class=cF4>Lex</span></a><span class=cF0> assert failure warning to give exact line number.
|
||||
<a name="l5"></a>* Removed some deprecated IDE functions.
|
||||
<a name="l6"></a>* Added default arg to </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l286"><span class=cF4>Drive</span></a><span class=cF0>, so running </span><span class=cF2>Drive;</span><span class=cF0> will bring you to the root of the current drive.
|
||||
|
@ -317,7 +317,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l289"></a>
|
||||
<a name="l290"></a></span><span class=c0F>----02/21/20 17:30:17----</span><span class=cF0>
|
||||
<a name="l291"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>("IRQ's", "IRQs");
|
||||
<a name="l292"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l228"><span class=cF4>MemBIOSRep</span></a><span class=cF0>() to report on VBE Linear Framebuffer size. E820 memory ranges are color-coded. It now shows the total
|
||||
<a name="l292"></a>* Updated </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l237"><span class=cF4>MemBIOSRep</span></a><span class=cF0>() to report on VBE Linear Framebuffer size. E820 memory ranges are color-coded. It now shows the total
|
||||
<a name="l293"></a>memory reported by </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l173"><span class=cF4>MemBIOSTotal</span></a><span class=cF0>().
|
||||
<a name="l294"></a>* Updated AutoComplete shortcuts from old WordStat <ALT(-SHIFT-)-W> to </span><span class=cF2><ALT(-SHIFT-)-A></span><span class=cF0> in </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Tips.DD.html#l1"><span class=cF4>::/Doc/Tips.DD</span></a><span class=cF0>.
|
||||
<a name="l295"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KStart16.CC.html#l234"><span class=cF4>check</span></a><span class=cF0> for invalid results of BIOS function 15:E801. BIOSes either return results in AX/BX or CX/DX. You have to make
|
||||
|
@ -623,7 +623,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l595"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>("SYS_SEMA_...","SEMA_...");
|
||||
<a name="l596"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>("SYSf_CTRL_ALT_...","CTRL_ALT_...");
|
||||
<a name="l597"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>("ThrowBreak()","</span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KExcept.CC.html#l121"><span class=cF4>Break</span></a><span class=cF0>()");
|
||||
<a name="l598"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l295"><span class=cF4>MemPageRep</span></a><span class=cF0>().
|
||||
<a name="l598"></a>* Added </span><a href="https://zeal-operating-system.github.io/ZealOS/System/DevInfo.CC.html#l333"><span class=cF4>MemPageRep</span></a><span class=cF0>().
|
||||
<a name="l599"></a>
|
||||
<a name="l600"></a></span><span class=c0F>----12/30/16 23:42:20----</span><span class=cF0>
|
||||
<a name="l601"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>("Pages512","Pags");
|
||||
|
@ -818,7 +818,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l790"></a>* Made underscore mandatory on </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>HolyC</span></a><span class=cF0> callable asm functions.
|
||||
<a name="l791"></a>
|
||||
<a name="l792"></a></span><span class=c0F>----06/28/16 13:15:08----</span><span class=cF0>
|
||||
<a name="l793"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/TaskRep.CC.html#l19"><span class=cF4>TaskRep</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/MemRep.CC.html#l219"><span class=cF4>MemRep</span></a><span class=cF0>().
|
||||
<a name="l793"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/TaskRep.CC.html#l23"><span class=cF4>TaskRep</span></a><span class=cF0>() and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Utils/MemRep.CC.html#l219"><span class=cF4>MemRep</span></a><span class=cF0>().
|
||||
<a name="l794"></a>* Changed </span><a href="https://zeal-operating-system.github.io/ZealOS/System/WallPaper.CC.html#l1"><span class=cF4>::/System/WallPaper.CC</span></a><span class=cF0>.
|
||||
<a name="l795"></a>
|
||||
<a name="l796"></a></span><span class=c0F>----06/26/16 14:01:16----</span><span class=cF0>
|
||||
|
|
|
@ -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,752
|
||||
<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,837
|
||||
<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.
|
||||
|
|
|
@ -45,7 +45,7 @@ body {background-color:#fef1f0;}
|
|||
<a name="l17"></a>
|
||||
<a name="l18"></a>* Keyboard & Mouse support.
|
||||
<a name="l19"></a>
|
||||
<a name="l20"></a>* AHCI ATA Hard drives, support for </span><span class=cF2>FAT32</span><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file systems with file compression.
|
||||
<a name="l20"></a>* AHCI ATA Hard drives, support for </span><span class=cF2>FAT32</span><span class=cF0> and </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file systems.
|
||||
<a name="l21"></a>
|
||||
<a name="l22"></a>* AHCI ATAPI </span><span class=cF2>CD/DVD</span><span class=cF0> support with </span><span class=cF2>RedSea</span><span class=cF0> file system. Can make bootable ISO files so you can roll-your-own distro's.
|
||||
<a name="l23"></a>
|
||||
|
|
|
@ -25,52 +25,50 @@ body {background-color:#fef1f0;}
|
|||
</head>
|
||||
<body>
|
||||
<pre style="font-family:monospace;font-size:12pt">
|
||||
<a name="l1"></a><span class=cF0>GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the
|
||||
<a name="l2"></a>standard ZealOS LZW compression.
|
||||
<a name="l3"></a>
|
||||
<a name="l4"></a>#</span><span class=cF1>define</span><span class=cF0> DCF_COMPRESSED </span><span class=cFE>1</span><span class=cF0> </span><span class=cF2>//This is the only saved flag.</span><span class=cF0>
|
||||
<a name="l5"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_PALETTE</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>
|
||||
<a name="l6"></a>
|
||||
<a name="l7"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TRANSPARENT</span><span class=cF0> </span><span class=cFE>0xFF</span><span class=cF0>
|
||||
<a name="l8"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLACK</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>
|
||||
<a name="l9"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLUE</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l10"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GREEN</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>
|
||||
<a name="l11"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CYAN</span><span class=cF0> </span><span class=cFE>3</span><span class=cF0>
|
||||
<a name="l12"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RED</span><span class=cF0> </span><span class=cFE>4</span><span class=cF0>
|
||||
<a name="l13"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PURPLE</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>
|
||||
<a name="l14"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BROWN</span><span class=cF0> </span><span class=cFE>6</span><span class=cF0>
|
||||
<a name="l15"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGRAY</span><span class=cF0> </span><span class=cFE>7</span><span class=cF0>
|
||||
<a name="l16"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DKGRAY</span><span class=cF0> </span><span class=cFE>8</span><span class=cF0>
|
||||
<a name="l17"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTBLUE</span><span class=cF0> </span><span class=cFE>9</span><span class=cF0>
|
||||
<a name="l18"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGREEN</span><span class=cF0> </span><span class=cFE>10</span><span class=cF0>
|
||||
<a name="l19"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTCYAN</span><span class=cF0> </span><span class=cFE>11</span><span class=cF0>
|
||||
<a name="l20"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTRED</span><span class=cF0> </span><span class=cFE>12</span><span class=cF0>
|
||||
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTPURPLE</span><span class=cF0> </span><span class=cFE>13</span><span class=cF0>
|
||||
<a name="l22"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>YELLOW</span><span class=cF0> </span><span class=cFE>14</span><span class=cF0>
|
||||
<a name="l23"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WHITE</span><span class=cF0> </span><span class=cFE>15</span><span class=cF0>
|
||||
<a name="l24"></a>
|
||||
<a name="l25"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBGR48</span><span class=cF0>
|
||||
<a name="l26"></a>{
|
||||
<a name="l27"></a> </span><span class=cF9>U16</span><span class=cF0> r, g, b, pad;
|
||||
<a name="l28"></a>};
|
||||
<a name="l1"></a><span class=cF0>GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette.
|
||||
<a name="l2"></a>
|
||||
<a name="l3"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_PALETTE</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l4"></a>
|
||||
<a name="l5"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TRANSPARENT</span><span class=cF0> </span><span class=cFE>0xFF</span><span class=cF0>
|
||||
<a name="l6"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLACK</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>
|
||||
<a name="l7"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLUE</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l8"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GREEN</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>
|
||||
<a name="l9"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CYAN</span><span class=cF0> </span><span class=cFE>3</span><span class=cF0>
|
||||
<a name="l10"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RED</span><span class=cF0> </span><span class=cFE>4</span><span class=cF0>
|
||||
<a name="l11"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PURPLE</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>
|
||||
<a name="l12"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BROWN</span><span class=cF0> </span><span class=cFE>6</span><span class=cF0>
|
||||
<a name="l13"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGRAY</span><span class=cF0> </span><span class=cFE>7</span><span class=cF0>
|
||||
<a name="l14"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DKGRAY</span><span class=cF0> </span><span class=cFE>8</span><span class=cF0>
|
||||
<a name="l15"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTBLUE</span><span class=cF0> </span><span class=cFE>9</span><span class=cF0>
|
||||
<a name="l16"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGREEN</span><span class=cF0> </span><span class=cFE>10</span><span class=cF0>
|
||||
<a name="l17"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTCYAN</span><span class=cF0> </span><span class=cFE>11</span><span class=cF0>
|
||||
<a name="l18"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTRED</span><span class=cF0> </span><span class=cFE>12</span><span class=cF0>
|
||||
<a name="l19"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTPURPLE</span><span class=cF0> </span><span class=cFE>13</span><span class=cF0>
|
||||
<a name="l20"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>YELLOW</span><span class=cF0> </span><span class=cFE>14</span><span class=cF0>
|
||||
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WHITE</span><span class=cF0> </span><span class=cFE>15</span><span class=cF0>
|
||||
<a name="l22"></a>
|
||||
<a name="l23"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBGR48</span><span class=cF0>
|
||||
<a name="l24"></a>{
|
||||
<a name="l25"></a> </span><span class=cF9>U16</span><span class=cF0> r, g, b, pad;
|
||||
<a name="l26"></a>};
|
||||
<a name="l27"></a>
|
||||
<a name="l28"></a></span><span class=cF9>CBGR48</span><span class=cF0> gr_palette_std[</span><span class=cFE>16</span><span class=cF0>] = {
|
||||
<a name="l29"></a>
|
||||
<a name="l30"></a></span><span class=cF9>CBGR48</span><span class=cF0> gr_palette_std[</span><span class=cFE>16</span><span class=cF0>] = {
|
||||
<a name="l31"></a>
|
||||
<a name="l32"></a></span><span class=cFE>0x000000000000</span><span class=cF0>, </span><span class=cFE>0x00000000AAAA</span><span class=cF0>, </span><span class=cFE>0x0000AAAA0000</span><span class=cF0>, </span><span class=cFE>0x0000AAAAAAAA</span><span class=cF0>,
|
||||
<a name="l33"></a></span><span class=cFE>0xAAAA00000000</span><span class=cF0>, </span><span class=cFE>0xAAAA0000AAAA</span><span class=cF0>, </span><span class=cFE>0xAAAA55550000</span><span class=cF0>, </span><span class=cFE>0xAAAAAAAAAAAA</span><span class=cF0>,
|
||||
<a name="l34"></a></span><span class=cFE>0x555555555555</span><span class=cF0>, </span><span class=cFE>0x55555555FFFF</span><span class=cF0>, </span><span class=cFE>0x5555FFFF5555</span><span class=cF0>, </span><span class=cFE>0x5555FFFFFFFF</span><span class=cF0>,
|
||||
<a name="l35"></a></span><span class=cFE>0xFFFF55555555</span><span class=cF0>, </span><span class=cFE>0xFFFF5555FFFF</span><span class=cF0>, </span><span class=cFE>0xFFFFFFFF5555</span><span class=cF0>, </span><span class=cFE>0xFFFFFFFFFFFF</span><span class=cF0>};
|
||||
<a name="l36"></a>
|
||||
<a name="l37"></a></span><span class=cF1>class</span><span class=cF0> GRFile
|
||||
<a name="l38"></a>{
|
||||
<a name="l39"></a> </span><span class=cF9>I32</span><span class=cF0> width;
|
||||
<a name="l40"></a> </span><span class=cF9>I32</span><span class=cF0> width_internal; </span><span class=cF2>//Rounded-up to multiple of 8.</span><span class=cF0>
|
||||
<a name="l41"></a> </span><span class=cF9>I32</span><span class=cF0> height;
|
||||
<a name="l42"></a> </span><span class=cF9>I32</span><span class=cF0> flags;
|
||||
<a name="l43"></a> </span><span class=cF9>CBGR48</span><span class=cF0> palette[</span><span class=cFE>16</span><span class=cF0>]; </span><span class=cF2>//Included if DCF_PALETTE.</span><span class=cF0>
|
||||
<a name="l44"></a> </span><span class=cF1>U8</span><span class=cF0> body[];
|
||||
<a name="l45"></a>};
|
||||
<a name="l46"></a>
|
||||
<a name="l47"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l318"><span class=cF4>DCSave</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l404"><span class=cF4>GRWrite</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l362"><span class=cF4>DCLoad</span></a><span class=cF0>(), and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l415"><span class=cF4>GRRead</span></a><span class=cF0>().
|
||||
<a name="l30"></a></span><span class=cFE>0x000000000000</span><span class=cF0>, </span><span class=cFE>0x00000000AAAA</span><span class=cF0>, </span><span class=cFE>0x0000AAAA0000</span><span class=cF0>, </span><span class=cFE>0x0000AAAAAAAA</span><span class=cF0>,
|
||||
<a name="l31"></a></span><span class=cFE>0xAAAA00000000</span><span class=cF0>, </span><span class=cFE>0xAAAA0000AAAA</span><span class=cF0>, </span><span class=cFE>0xAAAA55550000</span><span class=cF0>, </span><span class=cFE>0xAAAAAAAAAAAA</span><span class=cF0>,
|
||||
<a name="l32"></a></span><span class=cFE>0x555555555555</span><span class=cF0>, </span><span class=cFE>0x55555555FFFF</span><span class=cF0>, </span><span class=cFE>0x5555FFFF5555</span><span class=cF0>, </span><span class=cFE>0x5555FFFFFFFF</span><span class=cF0>,
|
||||
<a name="l33"></a></span><span class=cFE>0xFFFF55555555</span><span class=cF0>, </span><span class=cFE>0xFFFF5555FFFF</span><span class=cF0>, </span><span class=cFE>0xFFFFFFFF5555</span><span class=cF0>, </span><span class=cFE>0xFFFFFFFFFFFF</span><span class=cF0>};
|
||||
<a name="l34"></a>
|
||||
<a name="l35"></a></span><span class=cF1>class</span><span class=cF0> GRFile
|
||||
<a name="l36"></a>{
|
||||
<a name="l37"></a> </span><span class=cF9>I32</span><span class=cF0> width;
|
||||
<a name="l38"></a> </span><span class=cF9>I32</span><span class=cF0> width_internal; </span><span class=cF2>//Rounded-up to multiple of 8.</span><span class=cF0>
|
||||
<a name="l39"></a> </span><span class=cF9>I32</span><span class=cF0> height;
|
||||
<a name="l40"></a> </span><span class=cF9>I32</span><span class=cF0> flags;
|
||||
<a name="l41"></a> </span><span class=cF9>CBGR48</span><span class=cF0> palette[</span><span class=cFE>16</span><span class=cF0>]; </span><span class=cF2>//Included if DCF_PALETTE.</span><span class=cF0>
|
||||
<a name="l42"></a> </span><span class=cF1>U8</span><span class=cF0> body[];
|
||||
<a name="l43"></a>};
|
||||
<a name="l44"></a>
|
||||
<a name="l45"></a>See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l318"><span class=cF4>DCSave</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l404"><span class=cF4>GRWrite</span></a><span class=cF0>(), </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l362"><span class=cF4>DCLoad</span></a><span class=cF0>(), and </span><a href="https://zeal-operating-system.github.io/ZealOS/System/Gr/GrDC.CC.html#l415"><span class=cF4>GRRead</span></a><span class=cF0>().
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -58,64 +58,63 @@ body {background-color:#fef1f0;}
|
|||
<a name="l31"></a>Cmd Line Routines
|
||||
<a name="l32"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CompilerOverview.DD.html#l1"><span class=cF4>Compiler Overview</span></a><span class=cF4>
|
||||
<a name="l33"></a>Compiler Routines
|
||||
<a name="l34"></a>Compression
|
||||
<a name="l35"></a>Ctrls
|
||||
<a name="l36"></a>Data Types
|
||||
<a name="l37"></a>Date
|
||||
<a name="l38"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DebugOverview.DD.html#l1"><span class=cF4>Debugging Overview</span></a><span class=cF4>
|
||||
<a name="l39"></a>Debugging Routines
|
||||
<a name="l40"></a>Define
|
||||
<a name="l41"></a>Devices
|
||||
<a name="l42"></a>Disk
|
||||
<a name="l43"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>Doc Overview</span></a><span class=cF4>
|
||||
<a name="l44"></a>Doc Routines
|
||||
<a name="l45"></a>Exceptions
|
||||
<a name="l46"></a>File
|
||||
<a name="l47"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/FileUtils.DD.html#l1"><span class=cF4>File Utils</span></a><span class=cF4>
|
||||
<a name="l48"></a>Frames
|
||||
<a name="l49"></a>God
|
||||
<a name="l50"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/GraphicsOverview.DD.html#l1"><span class=cF4>Graphics Overview</span></a><span class=cF4>
|
||||
<a name="l51"></a>Graphics Routines
|
||||
<a name="l52"></a>Hash
|
||||
<a name="l53"></a>Help System
|
||||
<a name="l54"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF4>
|
||||
<a name="l55"></a>InFile
|
||||
<a name="l56"></a>Info
|
||||
<a name="l57"></a>Install
|
||||
<a name="l58"></a>I/O
|
||||
<a name="l59"></a>Job
|
||||
<a name="l60"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/KeyAlloc.DD.html#l1"><span class=cF4>Key Allocations</span></a><span class=cF4>
|
||||
<a name="l61"></a>Keyboard Devices
|
||||
<a name="l62"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l29"><span class=cF4>Link Types</span></a><span class=cF4>
|
||||
<a name="l63"></a>Math
|
||||
<a name="l64"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/MemoryOverview.DD.html#l1"><span class=cF4>Memory Overview</span></a><span class=cF4>
|
||||
<a name="l65"></a>Memory Routines
|
||||
<a name="l66"></a>Menus
|
||||
<a name="l67"></a>Messages
|
||||
<a name="l68"></a>Misc
|
||||
<a name="l69"></a>Mouse
|
||||
<a name="l70"></a>MultiCore
|
||||
<a name="l71"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/OpCodes.DD.html#l258"><span class=cF4>OpCodes</span></a><span class=cF4>
|
||||
<a name="l72"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l209"><span class=cF4>Operator Precedences</span></a><span class=cF4>
|
||||
<a name="l73"></a>PCI
|
||||
<a name="l74"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Print.DD.html#l1"><span class=cF4>Print("") Format Strings</span></a><span class=cF4>
|
||||
<a name="l75"></a>Processor
|
||||
<a name="l76"></a>Profiler
|
||||
<a name="l77"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF4>
|
||||
<a name="l78"></a>Registry
|
||||
<a name="l79"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>Scan Codes</span></a><span class=cF4>
|
||||
<a name="l80"></a>ScreenCast
|
||||
<a name="l81"></a>Sound
|
||||
<a name="l82"></a>Sprites
|
||||
<a name="l83"></a>StdIn
|
||||
<a name="l84"></a>StdOut
|
||||
<a name="l85"></a>String
|
||||
<a name="l86"></a>Task
|
||||
<a name="l87"></a>TextBase Layer
|
||||
<a name="l88"></a>Time
|
||||
<a name="l89"></a>Training
|
||||
<a name="l90"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/TOSZ.DD.html#l1"><span class=cF4>TOSZ</span></a><span class=cF4>
|
||||
<a name="l91"></a>Utils
|
||||
<a name="l92"></a>Windows</span><span class=cF0>
|
||||
<a name="l34"></a>Ctrls
|
||||
<a name="l35"></a>Data Types
|
||||
<a name="l36"></a>Date
|
||||
<a name="l37"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DebugOverview.DD.html#l1"><span class=cF4>Debugging Overview</span></a><span class=cF4>
|
||||
<a name="l38"></a>Debugging Routines
|
||||
<a name="l39"></a>Define
|
||||
<a name="l40"></a>Devices
|
||||
<a name="l41"></a>Disk
|
||||
<a name="l42"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>Doc Overview</span></a><span class=cF4>
|
||||
<a name="l43"></a>Doc Routines
|
||||
<a name="l44"></a>Exceptions
|
||||
<a name="l45"></a>File
|
||||
<a name="l46"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/FileUtils.DD.html#l1"><span class=cF4>File Utils</span></a><span class=cF4>
|
||||
<a name="l47"></a>Frames
|
||||
<a name="l48"></a>God
|
||||
<a name="l49"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/GraphicsOverview.DD.html#l1"><span class=cF4>Graphics Overview</span></a><span class=cF4>
|
||||
<a name="l50"></a>Graphics Routines
|
||||
<a name="l51"></a>Hash
|
||||
<a name="l52"></a>Help System
|
||||
<a name="l53"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF4>
|
||||
<a name="l54"></a>InFile
|
||||
<a name="l55"></a>Info
|
||||
<a name="l56"></a>Install
|
||||
<a name="l57"></a>I/O
|
||||
<a name="l58"></a>Job
|
||||
<a name="l59"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/KeyAlloc.DD.html#l1"><span class=cF4>Key Allocations</span></a><span class=cF4>
|
||||
<a name="l60"></a>Keyboard Devices
|
||||
<a name="l61"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l29"><span class=cF4>Link Types</span></a><span class=cF4>
|
||||
<a name="l62"></a>Math
|
||||
<a name="l63"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/MemoryOverview.DD.html#l1"><span class=cF4>Memory Overview</span></a><span class=cF4>
|
||||
<a name="l64"></a>Memory Routines
|
||||
<a name="l65"></a>Menus
|
||||
<a name="l66"></a>Messages
|
||||
<a name="l67"></a>Misc
|
||||
<a name="l68"></a>Mouse
|
||||
<a name="l69"></a>MultiCore
|
||||
<a name="l70"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Compiler/OpCodes.DD.html#l258"><span class=cF4>OpCodes</span></a><span class=cF4>
|
||||
<a name="l71"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l209"><span class=cF4>Operator Precedences</span></a><span class=cF4>
|
||||
<a name="l72"></a>PCI
|
||||
<a name="l73"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/Print.DD.html#l1"><span class=cF4>Print("") Format Strings</span></a><span class=cF4>
|
||||
<a name="l74"></a>Processor
|
||||
<a name="l75"></a>Profiler
|
||||
<a name="l76"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF4>
|
||||
<a name="l77"></a>Registry
|
||||
<a name="l78"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>Scan Codes</span></a><span class=cF4>
|
||||
<a name="l79"></a>ScreenCast
|
||||
<a name="l80"></a>Sound
|
||||
<a name="l81"></a>Sprites
|
||||
<a name="l82"></a>StdIn
|
||||
<a name="l83"></a>StdOut
|
||||
<a name="l84"></a>String
|
||||
<a name="l85"></a>Task
|
||||
<a name="l86"></a>TextBase Layer
|
||||
<a name="l87"></a>Time
|
||||
<a name="l88"></a>Training
|
||||
<a name="l89"></a></span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/TOSZ.DD.html#l1"><span class=cF4>TOSZ</span></a><span class=cF4>
|
||||
<a name="l90"></a>Utils
|
||||
<a name="l91"></a>Windows</span><span class=cF0>
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -54,7 +54,7 @@ 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- 0x0000036C5F</span><span class=cF0>
|
||||
<a name="l30"></a></span><span class=cF2> 0x0000007C00- 0x0000036C7F</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#l4470"><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>
|
||||
|
|
|
@ -38,62 +38,61 @@ body {background-color:#fef1f0;}
|
|||
<a name="l11"></a>
|
||||
<a name="l12"></a>Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks
|
||||
<a name="l13"></a>and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file
|
||||
<a name="l14"></a>system allocates just contiguous files -- you load and save whole files at once. A benefit is this allows compression.
|
||||
<a name="l15"></a>Also, ZealOS does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to
|
||||
<a name="l16"></a>pieces with multimedia.
|
||||
<a name="l17"></a>
|
||||
<a name="l18"></a>A three bttn mouse is like a leg you cannot put weight on. ZealOS just does hardware everybody has, with no divergent code
|
||||
<a name="l19"></a>bases for each machine's custom hardware. There is one graphics driver instead of 50 for different GPUs. This saves an order
|
||||
<a name="l20"></a>of magnitude complexity and makes for a delightful API, so developer's code is not like a frayed rope end.
|
||||
<a name="l14"></a>system allocates just contiguous files -- you load and save whole files at once. Also, ZealOS does not do multimedia. In
|
||||
<a name="l15"></a>theory, memory will fragment with lots of big files. The system would fall to pieces with multimedia.
|
||||
<a name="l16"></a>
|
||||
<a name="l17"></a>A three bttn mouse is like a leg you cannot put weight on. ZealOS just does hardware everybody has, with no divergent code
|
||||
<a name="l18"></a>bases for each machine's custom hardware. There is one graphics driver instead of 50 for different GPUs. This saves an order
|
||||
<a name="l19"></a>of magnitude complexity and makes for a delightful API, so developer's code is not like a frayed rope end.
|
||||
<a name="l20"></a>
|
||||
<a name="l21"></a>
|
||||
<a name="l22"></a>
|
||||
<a name="l23"></a>
|
||||
<a name="l24"></a>* Everything runs in kernel, </span><span class=cF2>ring 0</span><span class=cF0>, mode.
|
||||
<a name="l25"></a>
|
||||
<a name="l26"></a>* </span><span class=cF2>One memory map</span><span class=cF0> for all tasks on all cores with virtual addresses set equal to physical, just as though paging is not used.
|
||||
<a name="l27"></a>
|
||||
<a name="l28"></a>* One platform -- </span><a href="http://en.wikipedia.org/wiki/Amd64#AMD64"><span class=cF4>x86_64</span></a><span class=cF0> PC's, no 32-bit support.
|
||||
<a name="l29"></a>
|
||||
<a name="l30"></a>* No security or cryptography.
|
||||
<a name="l31"></a>
|
||||
<a name="l32"></a>* Least (greatest) common denominator hardware support. Mostly, one driver for each device class. We can't be in the
|
||||
<a name="l33"></a>business of different drivers. Compatibility is the greatest challenge for PC operating systems. Disk code does not use
|
||||
<a name="l34"></a>interrupts, avoiding compatibility risks. </span><span class=cF2>PS/2</span><span class=cF0> keyboard/mouse is used instead of </span><span class=cF2>USB</span><span class=cF0>, also more compatible.
|
||||
<a name="l35"></a>
|
||||
<a name="l36"></a>* Updates whole screen at </span><span class=cF2>60 fps</span><span class=cF0>, optimized for full screen games where </span><span class=cF2>InvalidRectangle</span><span class=cF0>s are counter-productive.
|
||||
<a name="l37"></a>
|
||||
<a name="l38"></a>* One font, 8x8. Text and graphic layers done in software with text normally on an 8x8 grid.
|
||||
<a name="l39"></a>
|
||||
<a name="l40"></a>* Compiler extends all values to 64-bit when fetched and does only 64-bit computations intermediately. Assembler has minimal
|
||||
<a name="l41"></a>16-bit support, good enough for compiling boot loaders.
|
||||
<a name="l42"></a>
|
||||
<a name="l43"></a>* No object files. Use </span><span class=cF2>JIT</span><span class=cF0>.
|
||||
<a name="l44"></a>
|
||||
<a name="l45"></a>* Whole files are processed almost exclusively.
|
||||
<a name="l46"></a>
|
||||
<a name="l47"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>One language</span></a><span class=cF0> and compiler for command-line, scripts, songs, automations and code.
|
||||
<a name="l48"></a>
|
||||
<a name="l49"></a>* One editor/word processor/browser for the command-line window, source code, documentation browser, dialog forms.
|
||||
<a name="l50"></a>
|
||||
<a name="l51"></a>* No child windows. One window per task. Bttns are widgets, not child windows. There are child tasks, however.
|
||||
<a name="l52"></a>
|
||||
<a name="l53"></a>* No distinction between </span><span class=cF2>thread</span><span class=cF0>, </span><span class=cF2>process</span><span class=cF0> or </span><span class=cF2>task</span><span class=cF0>.
|
||||
<a name="l54"></a>
|
||||
<a name="l55"></a>* The </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>Scheduler</span></a><span class=cF0> is for home systems. It is not preemptiove. Disk requests are not broken-up, so sharing is bad. It's
|
||||
<a name="l56"></a>wonderfully simple.
|
||||
<a name="l57"></a>
|
||||
<a name="l58"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/MultiCore.DD.html#l1"><span class=cF4>MultiCore</span></a><span class=cF0> is done </span><span class=cF2>master/slave</span><span class=cF0>, instead of </span><span class=cF2>SMP</span><span class=cF0>. </span><span class=cF2>Core0</span><span class=cF0> applications explicitly assigns jobs. Locks are present allowing
|
||||
<a name="l59"></a>multicore file, heap, and hardware access, though.
|
||||
<a name="l60"></a>
|
||||
<a name="l61"></a>* </span><span class=cF4><u>Sound</u></span><span class=cF0> has single-voice 8-bit signed MIDI-like samples.
|
||||
<a name="l62"></a>
|
||||
<a name="l63"></a>* All tasks have a heap and a sym table. Scope is that of environment vars in other operating systems. As text is typed at
|
||||
<a name="l64"></a>the command line or you run programs by </span><span class=cF2>#include</span><span class=cF0>ing them, the syms go in the table. If a sym is not found, the parent task's
|
||||
<a name="l65"></a>table is checked. The father of all tasks has the API syms you'll need waiting in it's table. No need to </span><span class=cF2>#include</span><span class=cF0> headers.
|
||||
<a name="l66"></a>
|
||||
<a name="l67"></a>* No need for namespaces -- scoping occurs automatically based on task symbol table hierarchy with 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>'s symbol
|
||||
<a name="l68"></a>system-wide global.
|
||||
<a name="l69"></a>
|
||||
<a name="l70"></a>* Sometimes, we </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CutCorners.DD.html#l1"><span class=cF4>cut corners</span></a><span class=cF0> in the interest of keeping the code beautiful.
|
||||
<a name="l23"></a>* Everything runs in kernel, </span><span class=cF2>ring 0</span><span class=cF0>, mode.
|
||||
<a name="l24"></a>
|
||||
<a name="l25"></a>* </span><span class=cF2>One memory map</span><span class=cF0> for all tasks on all cores with virtual addresses set equal to physical, just as though paging is not used.
|
||||
<a name="l26"></a>
|
||||
<a name="l27"></a>* One platform -- </span><a href="http://en.wikipedia.org/wiki/Amd64#AMD64"><span class=cF4>x86_64</span></a><span class=cF0> PC's, no 32-bit support.
|
||||
<a name="l28"></a>
|
||||
<a name="l29"></a>* No security or cryptography.
|
||||
<a name="l30"></a>
|
||||
<a name="l31"></a>* Least (greatest) common denominator hardware support. Mostly, one driver for each device class. We can't be in the
|
||||
<a name="l32"></a>business of different drivers. Compatibility is the greatest challenge for PC operating systems. Disk code does not use
|
||||
<a name="l33"></a>interrupts, avoiding compatibility risks. </span><span class=cF2>PS/2</span><span class=cF0> keyboard/mouse is used instead of </span><span class=cF2>USB</span><span class=cF0>, also more compatible.
|
||||
<a name="l34"></a>
|
||||
<a name="l35"></a>* Updates whole screen at </span><span class=cF2>60 fps</span><span class=cF0>, optimized for full screen games where </span><span class=cF2>InvalidRectangle</span><span class=cF0>s are counter-productive.
|
||||
<a name="l36"></a>
|
||||
<a name="l37"></a>* One font, 8x8. Text and graphic layers done in software with text normally on an 8x8 grid.
|
||||
<a name="l38"></a>
|
||||
<a name="l39"></a>* Compiler extends all values to 64-bit when fetched and does only 64-bit computations intermediately. Assembler has minimal
|
||||
<a name="l40"></a>16-bit support, good enough for compiling boot loaders.
|
||||
<a name="l41"></a>
|
||||
<a name="l42"></a>* No object files. Use </span><span class=cF2>JIT</span><span class=cF0>.
|
||||
<a name="l43"></a>
|
||||
<a name="l44"></a>* Whole files are processed almost exclusively.
|
||||
<a name="l45"></a>
|
||||
<a name="l46"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>One language</span></a><span class=cF0> and compiler for command-line, scripts, songs, automations and code.
|
||||
<a name="l47"></a>
|
||||
<a name="l48"></a>* One editor/word processor/browser for the command-line window, source code, documentation browser, dialog forms.
|
||||
<a name="l49"></a>
|
||||
<a name="l50"></a>* No child windows. One window per task. Bttns are widgets, not child windows. There are child tasks, however.
|
||||
<a name="l51"></a>
|
||||
<a name="l52"></a>* No distinction between </span><span class=cF2>thread</span><span class=cF0>, </span><span class=cF2>process</span><span class=cF0> or </span><span class=cF2>task</span><span class=cF0>.
|
||||
<a name="l53"></a>
|
||||
<a name="l54"></a>* The </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>Scheduler</span></a><span class=cF0> is for home systems. It is not preemptiove. Disk requests are not broken-up, so sharing is bad. It's
|
||||
<a name="l55"></a>wonderfully simple.
|
||||
<a name="l56"></a>
|
||||
<a name="l57"></a>* </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/MultiCore.DD.html#l1"><span class=cF4>MultiCore</span></a><span class=cF0> is done </span><span class=cF2>master/slave</span><span class=cF0>, instead of </span><span class=cF2>SMP</span><span class=cF0>. </span><span class=cF2>Core0</span><span class=cF0> applications explicitly assigns jobs. Locks are present allowing
|
||||
<a name="l58"></a>multicore file, heap, and hardware access, though.
|
||||
<a name="l59"></a>
|
||||
<a name="l60"></a>* </span><span class=cF4><u>Sound</u></span><span class=cF0> has single-voice 8-bit signed MIDI-like samples.
|
||||
<a name="l61"></a>
|
||||
<a name="l62"></a>* All tasks have a heap and a sym table. Scope is that of environment vars in other operating systems. As text is typed at
|
||||
<a name="l63"></a>the command line or you run programs by </span><span class=cF2>#include</span><span class=cF0>ing them, the syms go in the table. If a sym is not found, the parent task's
|
||||
<a name="l64"></a>table is checked. The father of all tasks has the API syms you'll need waiting in it's table. No need to </span><span class=cF2>#include</span><span class=cF0> headers.
|
||||
<a name="l65"></a>
|
||||
<a name="l66"></a>* No need for namespaces -- scoping occurs automatically based on task symbol table hierarchy with 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>'s symbol
|
||||
<a name="l67"></a>system-wide global.
|
||||
<a name="l68"></a>
|
||||
<a name="l69"></a>* Sometimes, we </span><a href="https://zeal-operating-system.github.io/ZealOS/Doc/CutCorners.DD.html#l1"><span class=cF4>cut corners</span></a><span class=cF0> in the interest of keeping the code beautiful.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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,752 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,837 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>
|
||||
|
|
|
@ -410,30 +410,33 @@ body {background-color:#fef1f0;}
|
|||
<a name="l383"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l384"></a> </span><span class=cF6>"$FG,%d$$BG,%d$"</span><span class=cF0>, attr & </span><span class=cFE>15</span><span class=cF0>, attr >> </span><span class=cFE>4</span><span class=cF0>;
|
||||
<a name="l385"></a>
|
||||
<a name="l386"></a> </span><span class=cF6>"%C %-8Z %-10Z SATA Port: %02d\n"</span><span class=cF0>, drv_let,
|
||||
<a name="l387"></a> drive->fs_type & </span><span class=cF3>FSG_TYPE_MASK</span><span class=cF0>,
|
||||
<a name="l388"></a> </span><span class=cF6>"ST_DRIVE_TYPES"</span><span class=cF0>,
|
||||
<a name="l389"></a> bd->type,
|
||||
<a name="l390"></a> </span><span class=cF6>"ST_BLKDEV_TYPES"</span><span class=cF0>,
|
||||
<a name="l391"></a> bd->port_num;
|
||||
<a name="l392"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveModelNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l393"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l394"></a> </span><span class=cF6>" Model# :%s\n"</span><span class=cF0>, st;
|
||||
<a name="l395"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l396"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l397"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveSerialNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l398"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l399"></a> </span><span class=cF6>" Serial#:%s\n"</span><span class=cF0>, st;
|
||||
<a name="l400"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l401"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l402"></a> </span><span class=cF1>if</span><span class=cF0> (bd->type == </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0> || bd->type == </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>)
|
||||
<a name="l403"></a> </span><span class=cF6>" File=\"%s\"\n"</span><span class=cF0>, bd->file_disk_name;
|
||||
<a name="l404"></a> </span><span class=cF6>" %016X-%016X\n"</span><span class=cF0>, drive->drv_offset, drive->drv_offset + drive->size - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l405"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l406"></a> </span><span class=cF6>"$FG$$BG$"</span><span class=cF0>;
|
||||
<a name="l407"></a> }
|
||||
<a name="l408"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l409"></a> </span><span class=cF6>"Home Dir:\"%s\"\n"</span><span class=cF0>, </span><span class=cFB>blkdev</span><span class=cF0>.home_dir;
|
||||
<a name="l410"></a>}
|
||||
<a name="l386"></a> </span><span class=cF6>"%C %-8Z %-10Z "</span><span class=cF0>, drv_let,
|
||||
<a name="l387"></a> drive->fs_type & </span><span class=cF3>FSG_TYPE_MASK</span><span class=cF0>,
|
||||
<a name="l388"></a> </span><span class=cF6>"ST_DRIVE_TYPES"</span><span class=cF0>,
|
||||
<a name="l389"></a> bd->type,
|
||||
<a name="l390"></a> </span><span class=cF6>"ST_BLKDEV_TYPES"</span><span class=cF0>;
|
||||
<a name="l391"></a> </span><span class=cF1>if</span><span class=cF0> (bd->ahci_port)
|
||||
<a name="l392"></a> </span><span class=cF6>"SATA Port: %02d"</span><span class=cF0>, bd->port_num;
|
||||
<a name="l393"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l394"></a>
|
||||
<a name="l395"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveModelNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l396"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l397"></a> </span><span class=cF6>" Model# :%s\n"</span><span class=cF0>, st;
|
||||
<a name="l398"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l399"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l400"></a> </span><span class=cF1>if</span><span class=cF0> (st = </span><span class=cF5>DriveSerialNum</span><span class=cF7>(</span><span class=cF0>drv_let</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l401"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l402"></a> </span><span class=cF6>" Serial#:%s\n"</span><span class=cF0>, st;
|
||||
<a name="l403"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l404"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l405"></a> </span><span class=cF1>if</span><span class=cF0> (bd->type == </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0> || bd->type == </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0>)
|
||||
<a name="l406"></a> </span><span class=cF6>" File=\"%s\"\n"</span><span class=cF0>, bd->file_disk_name;
|
||||
<a name="l407"></a> </span><span class=cF6>" %016X-%016X\n"</span><span class=cF0>, drive->drv_offset, drive->drv_offset + drive->size - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l408"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l409"></a> </span><span class=cF6>"$FG$$BG$"</span><span class=cF0>;
|
||||
<a name="l410"></a> }
|
||||
<a name="l411"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l412"></a> </span><span class=cF6>"Home Dir:\"%s\"\n"</span><span class=cF0>, </span><span class=cFB>blkdev</span><span class=cF0>.home_dir;
|
||||
<a name="l413"></a>}
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -32,208 +32,206 @@ body {background-color:#fef1f0;}
|
|||
<a name="l5"></a> </span><span class=cF6>"VarInit\0"</span><span class=cF0>
|
||||
<a name="l6"></a> </span><span class=cF6>"HomeDir\0"</span><span class=cF0>
|
||||
<a name="l7"></a> </span><span class=cF6>"NoMP\0"</span><span class=cF0>
|
||||
<a name="l8"></a> </span><span class=cF6>"DontProbe\0"</span><span class=cF0>
|
||||
<a name="l9"></a> </span><span class=cF6>"MountAHCIAuto\0"</span><span class=cF0>
|
||||
<a name="l10"></a> </span><span class=cF6>"DebugDistro\0"</span><span class=cF0>
|
||||
<a name="l11"></a> </span><span class=cF6>"Help"</span><span class=cF0>;
|
||||
<a name="l12"></a>
|
||||
<a name="l13"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_MEM_INIT </span><span class=cFE>0</span><span class=cF0>
|
||||
<a name="l14"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HEAP_INIT </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l15"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_VAR_INIT </span><span class=cFE>2</span><span class=cF0>
|
||||
<a name="l16"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HOME_DIR </span><span class=cFE>3</span><span class=cF0>
|
||||
<a name="l17"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_NO_MP </span><span class=cFE>4</span><span class=cF0>
|
||||
<a name="l18"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_DONT_PROBE </span><span class=cFE>5</span><span class=cF0>
|
||||
<a name="l19"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_MOUNT_IDE_AUTO </span><span class=cFE>6</span><span class=cF0>
|
||||
<a name="l20"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_DEBUG_DISTRO </span><span class=cFE>7</span><span class=cF0>
|
||||
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_OPTIONS_NUM </span><span class=cFE>8</span><span class=cF0>
|
||||
<a name="l8"></a> </span><span class=cF6>"MountAHCIAuto\0"</span><span class=cF0>
|
||||
<a name="l9"></a> </span><span class=cF6>"DebugDistro\0"</span><span class=cF0>
|
||||
<a name="l10"></a> </span><span class=cF6>"Help"</span><span class=cF0>;
|
||||
<a name="l11"></a>
|
||||
<a name="l12"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_MEM_INIT </span><span class=cFE>0</span><span class=cF0>
|
||||
<a name="l13"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HEAP_INIT </span><span class=cFE>1</span><span class=cF0>
|
||||
<a name="l14"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_VAR_INIT </span><span class=cFE>2</span><span class=cF0>
|
||||
<a name="l15"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HOME_DIR </span><span class=cFE>3</span><span class=cF0>
|
||||
<a name="l16"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_NO_MP </span><span class=cFE>4</span><span class=cF0>
|
||||
<a name="l17"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_MOUNT_IDE_AUTO </span><span class=cFE>5</span><span class=cF0>
|
||||
<a name="l18"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_DEBUG_DISTRO </span><span class=cFE>6</span><span class=cF0>
|
||||
<a name="l19"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_OPTIONS_NUM </span><span class=cFE>7</span><span class=cF0>
|
||||
<a name="l20"></a>
|
||||
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HELP </span><span class=cFE>7</span><span class=cF0>
|
||||
<a name="l22"></a>
|
||||
<a name="l23"></a>#</span><span class=cF1>define</span><span class=cF0> CONFIG_HELP </span><span class=cFE>8</span><span class=cF0>
|
||||
<a name="l24"></a>
|
||||
<a name="l25"></a></span><span class=cF1>class</span><span class=cF0> CKConfig
|
||||
<a name="l26"></a>{
|
||||
<a name="l27"></a> </span><span class=cF1>U8</span><span class=cF0> *disk_cache_size_exp;
|
||||
<a name="l28"></a> </span><span class=cF9>CDoc</span><span class=cF0> *add_dev;
|
||||
<a name="l29"></a> </span><span class=cF1>U8</span><span class=cF0> *debug_distro_file, *debug_distro_start;
|
||||
<a name="l30"></a> </span><span class=cF1>U8</span><span class=cF0> *home_dir;
|
||||
<a name="l31"></a> </span><span class=cF9>U16</span><span class=cF0> screen_width, screen_height;
|
||||
<a name="l32"></a> </span><span class=cF1>Bool</span><span class=cF0> opts[CONFIG_OPTIONS_NUM];
|
||||
<a name="l33"></a> </span><span class=cF1>U8</span><span class=cF0> mem_init_val, heap_init_val, var_init_val, boot_drive_let, mount_ide_auto_hd_let, mount_ide_auto_cd_let;
|
||||
<a name="l34"></a>};
|
||||
<a name="l35"></a>
|
||||
<a name="l36"></a></span><span class=cF9>CDoc</span><span class=cF0> *KConfigAddDev(CKConfig *c)
|
||||
<a name="l37"></a>{
|
||||
<a name="l38"></a> </span><span class=cF9>I64</span><span class=cF0> ch;
|
||||
<a name="l39"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc = </span><span class=cF5>DocNew</span><span class=cF0>;
|
||||
<a name="l40"></a>
|
||||
<a name="l41"></a> </span><span class=cF6>"\n\nIn anticipation of the drives you will define shortly, enter the drive letter\n"</span><span class=cF0>
|
||||
<a name="l42"></a> </span><span class=cF6>"of the drive with your Home directory. ($PURPLE$<ENTER>$FG$ for current drive) Boot Drive:"</span><span class=cF0>;
|
||||
<a name="l43"></a>
|
||||
<a name="l44"></a> ch = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l45"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF6>'A'</span><span class=cF0> <= ch <= </span><span class=cF6>'Z'</span><span class=cF0>)
|
||||
<a name="l46"></a> c->boot_drive_let = ch;
|
||||
<a name="l47"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l48"></a> c->boot_drive_let = </span><span class=cF5>Drive2Letter</span><span class=cF0>(</span><span class=cF5>Fs</span><span class=cF0>->cur_dv);
|
||||
<a name="l23"></a></span><span class=cF1>class</span><span class=cF0> CKConfig
|
||||
<a name="l24"></a>{
|
||||
<a name="l25"></a> </span><span class=cF1>U8</span><span class=cF0> *disk_cache_size_exp;
|
||||
<a name="l26"></a> </span><span class=cF9>CDoc</span><span class=cF0> *add_dev;
|
||||
<a name="l27"></a> </span><span class=cF1>U8</span><span class=cF0> *debug_distro_file, *debug_distro_start;
|
||||
<a name="l28"></a> </span><span class=cF1>U8</span><span class=cF0> *home_dir;
|
||||
<a name="l29"></a> </span><span class=cF9>U16</span><span class=cF0> screen_width, screen_height;
|
||||
<a name="l30"></a> </span><span class=cF1>Bool</span><span class=cF0> opts[CONFIG_OPTIONS_NUM];
|
||||
<a name="l31"></a> </span><span class=cF1>U8</span><span class=cF0> mem_init_val, heap_init_val, var_init_val, boot_drive_let, mount_ide_auto_hd_let, mount_ide_auto_cd_let;
|
||||
<a name="l32"></a>};
|
||||
<a name="l33"></a>
|
||||
<a name="l34"></a></span><span class=cF9>CDoc</span><span class=cF0> *KConfigAddDev(CKConfig *c)
|
||||
<a name="l35"></a>{
|
||||
<a name="l36"></a> </span><span class=cF9>I64</span><span class=cF0> ch;
|
||||
<a name="l37"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc = </span><span class=cF5>DocNew</span><span class=cF0>;
|
||||
<a name="l38"></a>
|
||||
<a name="l39"></a> </span><span class=cF6>"\n\nIn anticipation of the drives you will define shortly, enter the drive letter\n"</span><span class=cF0>
|
||||
<a name="l40"></a> </span><span class=cF6>"of the drive with your Home directory. ($PURPLE$<ENTER>$FG$ for current drive) Boot Drive:"</span><span class=cF0>;
|
||||
<a name="l41"></a>
|
||||
<a name="l42"></a> ch = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l43"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF6>'A'</span><span class=cF0> <= ch <= </span><span class=cF6>'Z'</span><span class=cF0>)
|
||||
<a name="l44"></a> c->boot_drive_let = ch;
|
||||
<a name="l45"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l46"></a> c->boot_drive_let = </span><span class=cF5>Drive2Letter</span><span class=cF0>(</span><span class=cF5>Fs</span><span class=cF0>->cur_dv);
|
||||
<a name="l47"></a>
|
||||
<a name="l48"></a> </span><span class=cF6>"\n\n$BK,1$$PURPLE$Mount drives so they will be present when you boot.$FG$$BK,0$\n"</span><span class=cF0>;
|
||||
<a name="l49"></a>
|
||||
<a name="l50"></a> </span><span class=cF6>"\n\n$BK,1$$PURPLE$Mount drives so they will be present when you boot.$FG$$BK,0$\n"</span><span class=cF0>;
|
||||
<a name="l50"></a> </span><span class=cF5>Mount2</span><span class=cF0>(c->boot_drive_let, doc, </span><span class=cF3>FALSE</span><span class=cF0>);
|
||||
<a name="l51"></a>
|
||||
<a name="l52"></a> </span><span class=cF5>Mount2</span><span class=cF0>(c->boot_drive_let, doc, </span><span class=cF3>FALSE</span><span class=cF0>);
|
||||
<a name="l53"></a>
|
||||
<a name="l54"></a> </span><span class=cF1>return</span><span class=cF0> doc;
|
||||
<a name="l55"></a>}
|
||||
<a name="l56"></a>
|
||||
<a name="l57"></a></span><span class=cF1>U0</span><span class=cF0> KConfigOptions(CKConfig *c)
|
||||
<a name="l58"></a>{
|
||||
<a name="l59"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
||||
<a name="l60"></a> </span><span class=cF1>U8</span><span class=cF0> *st = </span><span class=cF3>NULL</span><span class=cF0>, *st2, *st3;
|
||||
<a name="l61"></a> </span><span class=cF1>Bool</span><span class=cF0> state;
|
||||
<a name="l62"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l63"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l64"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l65"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < CONFIG_OPTIONS_NUM; i++)
|
||||
<a name="l66"></a> </span><span class=cF1>if</span><span class=cF0> (i == CONFIG_HOME_DIR)
|
||||
<a name="l67"></a> </span><span class=cF6>"$PURPLE$%13tz$FG$:\"%s\"\n"</span><span class=cF0>, i, kernel_config_options, c->home_dir;
|
||||
<a name="l68"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l69"></a> </span><span class=cF6>"$PURPLE$%13tz$FG$:%Z\n"</span><span class=cF0>, i, kernel_config_options, c->opts[i], </span><span class=cF6>"ST_OFF_ON"</span><span class=cF0>;
|
||||
<a name="l70"></a> </span><span class=cF6>"\nType '$PURPLE$Help$FG$' for help.\n"</span><span class=cF0>;
|
||||
<a name="l71"></a> st = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Option ($PURPLE$<ENTER>$FG$ when done):"</span><span class=cF0>, </span><span class=cF6>""</span><span class=cF0>);
|
||||
<a name="l72"></a> i = </span><span class=cF5>ListMatch</span><span class=cF0>(st, kernel_config_options, </span><span class=cF3>LMF_IGNORE_CASE</span><span class=cF0>);
|
||||
<a name="l73"></a> </span><span class=cF1>if</span><span class=cF0> (i == CONFIG_HELP)
|
||||
<a name="l74"></a> </span><span class=cF6>"\n"</span><span class=cF0>
|
||||
<a name="l75"></a> </span><span class=cF6>"$PURPLE$MemInit$FG$ Initializes memory above 0x100000 "</span><span class=cF0>
|
||||
<a name="l76"></a> </span><span class=cF6>"to a val at boot.\n"</span><span class=cF0>
|
||||
<a name="l77"></a> </span><span class=cF6>"$PURPLE$HeapInit$FG$ Initializes MAlloc() memory to a val.\n"</span><span class=cF0>
|
||||
<a name="l78"></a> </span><span class=cF6>"$PURPLE$VarInit$FG$ Initializes global var memory to a val.\n"</span><span class=cF0>
|
||||
<a name="l79"></a> </span><span class=cF6>"$PURPLE$HomeDir$FG$ Set home dir.\n"</span><span class=cF0>
|
||||
<a name="l80"></a> </span><span class=cF6>"$PURPLE$NoMP$FG$ No multicore.\n"</span><span class=cF0>
|
||||
<a name="l81"></a> </span><span class=cF6>"$PURPLE$DontProbe$FG$ Just prompt CD/DVD ports, don't probe.\n"</span><span class=cF0>
|
||||
<a name="l82"></a> </span><span class=cF6>"$PURPLE$MountAHCIAuto$FG$ Auto Mount AHCI drives to 'C' and 'T'.\n"</span><span class=cF0>
|
||||
<a name="l83"></a> </span><span class=cF6>"$PURPLE$DebugDistro$FG$ Include RAM Drive in Kernel.BIN.\n"</span><span class=cF0>
|
||||
<a name="l84"></a> </span><span class=cF6>"\n"</span><span class=cF0>;
|
||||
<a name="l85"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l86"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> <= i < CONFIG_OPTIONS_NUM)
|
||||
<a name="l87"></a> {
|
||||
<a name="l88"></a> state = c->opts[i] = !c->opts[i];
|
||||
<a name="l89"></a> </span><span class=cF1>switch</span><span class=cF0> (i)
|
||||
<a name="l90"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l91"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_MEM_INIT:
|
||||
<a name="l92"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l93"></a> c->mem_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l94"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l95"></a>
|
||||
<a name="l96"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_HEAP_INIT:
|
||||
<a name="l97"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l98"></a> c->heap_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l99"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l100"></a>
|
||||
<a name="l101"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_VAR_INIT:
|
||||
<a name="l102"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l103"></a> c->var_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l104"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l105"></a>
|
||||
<a name="l106"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_HOME_DIR:
|
||||
<a name="l107"></a> st2 = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Home Dir(\"%s\"):"</span><span class=cF0>, c->home_dir);
|
||||
<a name="l108"></a> </span><span class=cF1>if</span><span class=cF0> (!*st2)
|
||||
<a name="l109"></a> st2 = </span><span class=cF5>StrNew</span><span class=cF0>(</span><span class=cF6>"::/Home"</span><span class=cF0>);
|
||||
<a name="l110"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (st2[</span><span class=cFE>1</span><span class=cF0>] != </span><span class=cF6>':'</span><span class=cF0>)
|
||||
<a name="l111"></a> {
|
||||
<a name="l112"></a> st3 = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>"::%s"</span><span class=cF0>, st2);
|
||||
<a name="l113"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
|
||||
<a name="l114"></a> st2 = st3;
|
||||
<a name="l115"></a> }
|
||||
<a name="l116"></a> </span><span class=cF5>Free</span><span class=cF0>(c->home_dir);
|
||||
<a name="l117"></a> c->home_dir = st2;
|
||||
<a name="l118"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>StrCompare</span><span class=cF7>(</span><span class=cF0>c->home_dir, </span><span class=cF6>"::/Home"</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l119"></a> c->opts[i] = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l120"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l121"></a> c->opts[i] = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l122"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l123"></a>
|
||||
<a name="l124"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_MOUNT_IDE_AUTO:
|
||||
<a name="l125"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l126"></a> {
|
||||
<a name="l127"></a> </span><span class=cF6>"First HD Drive Let:"</span><span class=cF0>;
|
||||
<a name="l128"></a> c->mount_ide_auto_hd_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l129"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF6>'A'</span><span class=cF0> <= c->mount_ide_auto_hd_let <= </span><span class=cF6>'Z'</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l130"></a> c->mount_ide_auto_hd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l131"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l132"></a> </span><span class=cF1>if</span><span class=cF0> (c->mount_ide_auto_hd_let)
|
||||
<a name="l133"></a> </span><span class=cF6>"First HD Drive:%C\n"</span><span class=cF0>, c->mount_ide_auto_hd_let;
|
||||
<a name="l134"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l135"></a> </span><span class=cF6>"First HD Drive:%C\n"</span><span class=cF0>, </span><span class=cF6>'C'</span><span class=cF0>;
|
||||
<a name="l136"></a>
|
||||
<a name="l137"></a> </span><span class=cF6>"First CD Drive Let:"</span><span class=cF0>;
|
||||
<a name="l138"></a> c->mount_ide_auto_cd_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l139"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF6>'A'</span><span class=cF0> <= c->mount_ide_auto_cd_let <= </span><span class=cF6>'Z'</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l140"></a> c->mount_ide_auto_cd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l141"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l142"></a> </span><span class=cF1>if</span><span class=cF0> (c->mount_ide_auto_cd_let)
|
||||
<a name="l143"></a> </span><span class=cF6>"First CD Drive:%C\n"</span><span class=cF0>, c->mount_ide_auto_cd_let;
|
||||
<a name="l144"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l145"></a> </span><span class=cF6>"First CD Drive:%C\n"</span><span class=cF0>, </span><span class=cF6>'T'</span><span class=cF0>;
|
||||
<a name="l146"></a> }
|
||||
<a name="l147"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l148"></a> {
|
||||
<a name="l149"></a> c->mount_ide_auto_hd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l150"></a> c->mount_ide_auto_cd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l151"></a> }
|
||||
<a name="l152"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l153"></a>
|
||||
<a name="l154"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_DEBUG_DISTRO:
|
||||
<a name="l155"></a> </span><span class=cF5>Free</span><span class=cF0>(c->debug_distro_file);
|
||||
<a name="l156"></a> c->debug_distro_file = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l157"></a> c->debug_distro_start = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l158"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l159"></a> {
|
||||
<a name="l160"></a> c->debug_distro_file = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Debug Distro File:"</span><span class=cF0>);
|
||||
<a name="l161"></a> c->debug_distro_start = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Debug Distro Start:"</span><span class=cF0>);
|
||||
<a name="l162"></a> }
|
||||
<a name="l163"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l164"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l165"></a> }
|
||||
<a name="l166"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l167"></a> </span><span class=cF1>while</span><span class=cF0> (*st);
|
||||
<a name="l168"></a>
|
||||
<a name="l169"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l170"></a>}
|
||||
<a name="l171"></a>
|
||||
<a name="l172"></a>CKConfig *KConfigNew()
|
||||
<a name="l173"></a>{
|
||||
<a name="l174"></a> </span><span class=cF9>I64</span><span class=cF0> resolution_num;
|
||||
<a name="l175"></a> CKConfig *c = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF0>CKConfig</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l176"></a>
|
||||
<a name="l177"></a> c->add_dev = KConfigAddDev(c);
|
||||
<a name="l178"></a> c->home_dir = </span><span class=cF5>StrNew</span><span class=cF0>(</span><span class=cF6>"::/Home"</span><span class=cF0>);
|
||||
<a name="l179"></a>
|
||||
<a name="l180"></a> </span><span class=cF5>VideoRep</span><span class=cF0>(</span><span class=cF3>FALSE</span><span class=cF0>);
|
||||
<a name="l181"></a> resolution_num = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Enter list number of desired resolution, "</span><span class=cF0>
|
||||
<a name="l182"></a> </span><span class=cF6>"or desired width. ($PURPLE$<ENTER>$FG$ for auto maximum): "</span><span class=cF0>,, </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l183"></a> </span><span class=cF1>if</span><span class=cF0> (resolution_num <= </span><span class=cF3>VBE_MODES_NUM</span><span class=cF0>)
|
||||
<a name="l184"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l185"></a> c->screen_width = </span><span class=cFB>sys_vbe_modes</span><span class=cF0>[resolution_num - </span><span class=cFE>1</span><span class=cF0>].width;
|
||||
<a name="l186"></a> c->screen_height = </span><span class=cFB>sys_vbe_modes</span><span class=cF0>[resolution_num - </span><span class=cFE>1</span><span class=cF0>].height;
|
||||
<a name="l187"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l188"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l189"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l190"></a> c->screen_width = resolution_num;
|
||||
<a name="l191"></a> c->screen_height = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Enter Height: "</span><span class=cF0>,, </span><span class=cFE>0</span><span class=cF0>);
|
||||
<a name="l192"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l193"></a>
|
||||
<a name="l194"></a>
|
||||
<a name="l195"></a> c->disk_cache_size_exp = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"\nDisk Cache Size in Bytes, gets rounded-up funny, "</span><span class=cF0>
|
||||
<a name="l196"></a> </span><span class=cF6>"($PURPLE$<ENTER>$FG$ will use default.):"</span><span class=cF0>,
|
||||
<a name="l197"></a> </span><span class=cF6>"Scale2Mem(0x80000,0x8000000)"</span><span class=cF0>);
|
||||
<a name="l198"></a> KConfigOptions(c);
|
||||
<a name="l199"></a>
|
||||
<a name="l200"></a> </span><span class=cF1>return</span><span class=cF0> c;
|
||||
<a name="l201"></a>}
|
||||
<a name="l202"></a>
|
||||
<a name="l203"></a></span><span class=cF1>U0</span><span class=cF0> KConfigDel(CKConfig *c)
|
||||
<a name="l204"></a>{
|
||||
<a name="l205"></a> </span><span class=cF5>DocDel</span><span class=cF0>(c->add_dev);
|
||||
<a name="l206"></a> </span><span class=cF5>Free</span><span class=cF0>(c->debug_distro_file);
|
||||
<a name="l207"></a> </span><span class=cF5>Free</span><span class=cF0>(c->home_dir);
|
||||
<a name="l208"></a> </span><span class=cF5>Free</span><span class=cF0>(c->disk_cache_size_exp);
|
||||
<a name="l209"></a> </span><span class=cF5>Free</span><span class=cF0>(c);
|
||||
<a name="l210"></a>}
|
||||
<a name="l52"></a> </span><span class=cF1>return</span><span class=cF0> doc;
|
||||
<a name="l53"></a>}
|
||||
<a name="l54"></a>
|
||||
<a name="l55"></a></span><span class=cF1>U0</span><span class=cF0> KConfigOptions(CKConfig *c)
|
||||
<a name="l56"></a>{
|
||||
<a name="l57"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
||||
<a name="l58"></a> </span><span class=cF1>U8</span><span class=cF0> *st = </span><span class=cF3>NULL</span><span class=cF0>, *st2, *st3;
|
||||
<a name="l59"></a> </span><span class=cF1>Bool</span><span class=cF0> state;
|
||||
<a name="l60"></a> </span><span class=cF1>do</span><span class=cF0>
|
||||
<a name="l61"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l62"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l63"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < CONFIG_OPTIONS_NUM; i++)
|
||||
<a name="l64"></a> </span><span class=cF1>if</span><span class=cF0> (i == CONFIG_HOME_DIR)
|
||||
<a name="l65"></a> </span><span class=cF6>"$PURPLE$%13tz$FG$:\"%s\"\n"</span><span class=cF0>, i, kernel_config_options, c->home_dir;
|
||||
<a name="l66"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l67"></a> </span><span class=cF6>"$PURPLE$%13tz$FG$:%Z\n"</span><span class=cF0>, i, kernel_config_options, c->opts[i], </span><span class=cF6>"ST_OFF_ON"</span><span class=cF0>;
|
||||
<a name="l68"></a> </span><span class=cF6>"\nType '$PURPLE$Help$FG$' for help.\n"</span><span class=cF0>;
|
||||
<a name="l69"></a> st = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Option ($PURPLE$<ENTER>$FG$ when done):"</span><span class=cF0>, </span><span class=cF6>""</span><span class=cF0>);
|
||||
<a name="l70"></a> i = </span><span class=cF5>ListMatch</span><span class=cF0>(st, kernel_config_options, </span><span class=cF3>LMF_IGNORE_CASE</span><span class=cF0>);
|
||||
<a name="l71"></a> </span><span class=cF1>if</span><span class=cF0> (i == CONFIG_HELP)
|
||||
<a name="l72"></a> </span><span class=cF6>"\n"</span><span class=cF0>
|
||||
<a name="l73"></a> </span><span class=cF6>"$PURPLE$MemInit$FG$ Initializes memory above 0x100000 "</span><span class=cF0>
|
||||
<a name="l74"></a> </span><span class=cF6>"to a val at boot.\n"</span><span class=cF0>
|
||||
<a name="l75"></a> </span><span class=cF6>"$PURPLE$HeapInit$FG$ Initializes MAlloc() memory to a val.\n"</span><span class=cF0>
|
||||
<a name="l76"></a> </span><span class=cF6>"$PURPLE$VarInit$FG$ Initializes global var memory to a val.\n"</span><span class=cF0>
|
||||
<a name="l77"></a> </span><span class=cF6>"$PURPLE$HomeDir$FG$ Set home dir.\n"</span><span class=cF0>
|
||||
<a name="l78"></a> </span><span class=cF6>"$PURPLE$NoMP$FG$ No multicore.\n"</span><span class=cF0>
|
||||
<a name="l79"></a> </span><span class=cF6>"$PURPLE$DontProbe$FG$ Just prompt CD/DVD ports, don't probe.\n"</span><span class=cF0>
|
||||
<a name="l80"></a> </span><span class=cF6>"$PURPLE$MountAHCIAuto$FG$ Auto Mount AHCI drives to 'C' and 'T'.\n"</span><span class=cF0>
|
||||
<a name="l81"></a> </span><span class=cF6>"$PURPLE$DebugDistro$FG$ Include RAM Drive in Kernel.BIN.\n"</span><span class=cF0>
|
||||
<a name="l82"></a> </span><span class=cF6>"\n"</span><span class=cF0>;
|
||||
<a name="l83"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l84"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> <= i < CONFIG_OPTIONS_NUM)
|
||||
<a name="l85"></a> {
|
||||
<a name="l86"></a> state = c->opts[i] = !c->opts[i];
|
||||
<a name="l87"></a> </span><span class=cF1>switch</span><span class=cF0> (i)
|
||||
<a name="l88"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l89"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_MEM_INIT:
|
||||
<a name="l90"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l91"></a> c->mem_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l92"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l93"></a>
|
||||
<a name="l94"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_HEAP_INIT:
|
||||
<a name="l95"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l96"></a> c->heap_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l97"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l98"></a>
|
||||
<a name="l99"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_VAR_INIT:
|
||||
<a name="l100"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l101"></a> c->var_init_val = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Val (0-255):"</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>255</span><span class=cF0>);
|
||||
<a name="l102"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l103"></a>
|
||||
<a name="l104"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_HOME_DIR:
|
||||
<a name="l105"></a> st2 = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Home Dir(\"%s\"):"</span><span class=cF0>, c->home_dir);
|
||||
<a name="l106"></a> </span><span class=cF1>if</span><span class=cF0> (!*st2)
|
||||
<a name="l107"></a> st2 = </span><span class=cF5>StrNew</span><span class=cF0>(</span><span class=cF6>"::/Home"</span><span class=cF0>);
|
||||
<a name="l108"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (st2[</span><span class=cFE>1</span><span class=cF0>] != </span><span class=cF6>':'</span><span class=cF0>)
|
||||
<a name="l109"></a> {
|
||||
<a name="l110"></a> st3 = </span><span class=cF5>MStrPrint</span><span class=cF0>(</span><span class=cF6>"::%s"</span><span class=cF0>, st2);
|
||||
<a name="l111"></a> </span><span class=cF5>Free</span><span class=cF0>(st2);
|
||||
<a name="l112"></a> st2 = st3;
|
||||
<a name="l113"></a> }
|
||||
<a name="l114"></a> </span><span class=cF5>Free</span><span class=cF0>(c->home_dir);
|
||||
<a name="l115"></a> c->home_dir = st2;
|
||||
<a name="l116"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>StrCompare</span><span class=cF7>(</span><span class=cF0>c->home_dir, </span><span class=cF6>"::/Home"</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l117"></a> c->opts[i] = </span><span class=cF3>TRUE</span><span class=cF0>;
|
||||
<a name="l118"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l119"></a> c->opts[i] = </span><span class=cF3>FALSE</span><span class=cF0>;
|
||||
<a name="l120"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l121"></a>
|
||||
<a name="l122"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_MOUNT_IDE_AUTO:
|
||||
<a name="l123"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l124"></a> {
|
||||
<a name="l125"></a> </span><span class=cF6>"First HD Drive Let:"</span><span class=cF0>;
|
||||
<a name="l126"></a> c->mount_ide_auto_hd_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l127"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF6>'A'</span><span class=cF0> <= c->mount_ide_auto_hd_let <= </span><span class=cF6>'Z'</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l128"></a> c->mount_ide_auto_hd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l129"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l130"></a> </span><span class=cF1>if</span><span class=cF0> (c->mount_ide_auto_hd_let)
|
||||
<a name="l131"></a> </span><span class=cF6>"First HD Drive:%C\n"</span><span class=cF0>, c->mount_ide_auto_hd_let;
|
||||
<a name="l132"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l133"></a> </span><span class=cF6>"First HD Drive:%C\n"</span><span class=cF0>, </span><span class=cF6>'C'</span><span class=cF0>;
|
||||
<a name="l134"></a>
|
||||
<a name="l135"></a> </span><span class=cF6>"First CD Drive Let:"</span><span class=cF0>;
|
||||
<a name="l136"></a> c->mount_ide_auto_cd_let = </span><span class=cF5>Letter2Letter</span><span class=cF0>(</span><span class=cF5>CharGet</span><span class=cF0>);
|
||||
<a name="l137"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF6>'A'</span><span class=cF0> <= c->mount_ide_auto_cd_let <= </span><span class=cF6>'Z'</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l138"></a> c->mount_ide_auto_cd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l139"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l140"></a> </span><span class=cF1>if</span><span class=cF0> (c->mount_ide_auto_cd_let)
|
||||
<a name="l141"></a> </span><span class=cF6>"First CD Drive:%C\n"</span><span class=cF0>, c->mount_ide_auto_cd_let;
|
||||
<a name="l142"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l143"></a> </span><span class=cF6>"First CD Drive:%C\n"</span><span class=cF0>, </span><span class=cF6>'T'</span><span class=cF0>;
|
||||
<a name="l144"></a> }
|
||||
<a name="l145"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l146"></a> {
|
||||
<a name="l147"></a> c->mount_ide_auto_hd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l148"></a> c->mount_ide_auto_cd_let = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l149"></a> }
|
||||
<a name="l150"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l151"></a>
|
||||
<a name="l152"></a> </span><span class=cF1>case</span><span class=cF0> CONFIG_DEBUG_DISTRO:
|
||||
<a name="l153"></a> </span><span class=cF5>Free</span><span class=cF0>(c->debug_distro_file);
|
||||
<a name="l154"></a> c->debug_distro_file = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l155"></a> c->debug_distro_start = </span><span class=cFE>0</span><span class=cF0>;
|
||||
<a name="l156"></a> </span><span class=cF1>if</span><span class=cF0> (state)
|
||||
<a name="l157"></a> {
|
||||
<a name="l158"></a> c->debug_distro_file = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"Debug Distro File:"</span><span class=cF0>);
|
||||
<a name="l159"></a> c->debug_distro_start = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Debug Distro Start:"</span><span class=cF0>);
|
||||
<a name="l160"></a> }
|
||||
<a name="l161"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l162"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l163"></a> }
|
||||
<a name="l164"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l165"></a> </span><span class=cF1>while</span><span class=cF0> (*st);
|
||||
<a name="l166"></a>
|
||||
<a name="l167"></a> </span><span class=cF5>Free</span><span class=cF0>(st);
|
||||
<a name="l168"></a>}
|
||||
<a name="l169"></a>
|
||||
<a name="l170"></a>CKConfig *KConfigNew()
|
||||
<a name="l171"></a>{
|
||||
<a name="l172"></a> </span><span class=cF9>I64</span><span class=cF0> resolution_num;
|
||||
<a name="l173"></a> CKConfig *c = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF0>CKConfig</span><span class=cF7>)</span><span class=cF0>);
|
||||
<a name="l174"></a>
|
||||
<a name="l175"></a> c->add_dev = KConfigAddDev(c);
|
||||
<a name="l176"></a> c->home_dir = </span><span class=cF5>StrNew</span><span class=cF0>(</span><span class=cF6>"::/Home"</span><span class=cF0>);
|
||||
<a name="l177"></a>
|
||||
<a name="l178"></a> </span><span class=cF5>VideoRep</span><span class=cF0>(</span><span class=cF3>FALSE</span><span class=cF0>);
|
||||
<a name="l179"></a> resolution_num = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Enter list number of desired resolution, "</span><span class=cF0>
|
||||
<a name="l180"></a> </span><span class=cF6>"or desired width. ($PURPLE$<ENTER>$FG$ for auto maximum): "</span><span class=cF0>,, </span><span class=cFE>1</span><span class=cF0>);
|
||||
<a name="l181"></a> </span><span class=cF1>if</span><span class=cF0> (resolution_num <= </span><span class=cF3>VBE_MODES_NUM</span><span class=cF0>)
|
||||
<a name="l182"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l183"></a> c->screen_width = </span><span class=cFB>sys_vbe_modes</span><span class=cF0>[resolution_num - </span><span class=cFE>1</span><span class=cF0>].width;
|
||||
<a name="l184"></a> c->screen_height = </span><span class=cFB>sys_vbe_modes</span><span class=cF0>[resolution_num - </span><span class=cFE>1</span><span class=cF0>].height;
|
||||
<a name="l185"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l186"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l187"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l188"></a> c->screen_width = resolution_num;
|
||||
<a name="l189"></a> c->screen_height = </span><span class=cF5>I64Get</span><span class=cF0>(</span><span class=cF6>"Enter Height: "</span><span class=cF0>,, </span><span class=cFE>0</span><span class=cF0>);
|
||||
<a name="l190"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l191"></a>
|
||||
<a name="l192"></a>
|
||||
<a name="l193"></a> c->disk_cache_size_exp = </span><span class=cF5>StrGet</span><span class=cF0>(</span><span class=cF6>"\nDisk Cache Size in Bytes, gets rounded-up funny, "</span><span class=cF0>
|
||||
<a name="l194"></a> </span><span class=cF6>"($PURPLE$<ENTER>$FG$ will use default.):"</span><span class=cF0>,
|
||||
<a name="l195"></a> </span><span class=cF6>"Scale2Mem(0x80000,0x8000000)"</span><span class=cF0>);
|
||||
<a name="l196"></a> KConfigOptions(c);
|
||||
<a name="l197"></a>
|
||||
<a name="l198"></a> </span><span class=cF1>return</span><span class=cF0> c;
|
||||
<a name="l199"></a>}
|
||||
<a name="l200"></a>
|
||||
<a name="l201"></a></span><span class=cF1>U0</span><span class=cF0> KConfigDel(CKConfig *c)
|
||||
<a name="l202"></a>{
|
||||
<a name="l203"></a> </span><span class=cF5>DocDel</span><span class=cF0>(c->add_dev);
|
||||
<a name="l204"></a> </span><span class=cF5>Free</span><span class=cF0>(c->debug_distro_file);
|
||||
<a name="l205"></a> </span><span class=cF5>Free</span><span class=cF0>(c->home_dir);
|
||||
<a name="l206"></a> </span><span class=cF5>Free</span><span class=cF0>(c->disk_cache_size_exp);
|
||||
<a name="l207"></a> </span><span class=cF5>Free</span><span class=cF0>(c);
|
||||
<a name="l208"></a>}
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -243,97 +243,142 @@ body {background-color:#fef1f0;}
|
|||
<a name="l216"></a> tmppci = </span><span class=cFB>dev</span><span class=cF0>.pci_head.next;
|
||||
<a name="l217"></a> </span><span class=cF1>while</span><span class=cF0> (tmppci != &</span><span class=cFB>dev</span><span class=cF0>.pci_head)
|
||||
<a name="l218"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l219"></a> </span><span class=cF6>"%02X:%02X:%01X %02X-%02X-%02X $GREEN$%s $CYAN$%s$FG$\n"</span><span class=cF0>,
|
||||
<a name="l219"></a> </span><span class=cF6>"%02X:%02X:%01X %02X-%02X-%02X "</span><span class=cF0>,
|
||||
<a name="l220"></a> tmppci->bus, tmppci-></span><span class=cFB>dev</span><span class=cF0>, tmppci->fun,
|
||||
<a name="l221"></a> tmppci->class_code, tmppci->sub_code, tmppci->prog_if,
|
||||
<a name="l222"></a> tmppci->vendor_str, tmppci->dev_id_str;
|
||||
<a name="l223"></a> tmppci=tmppci->next;
|
||||
<a name="l224"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l225"></a>}
|
||||
<a name="l226"></a>
|
||||
<a name="l227"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Info;Memory/Info"</span><span class=cF0>
|
||||
<a name="l228"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemBIOSRep</span><span class=cF0>()
|
||||
<a name="l229"></a>{</span><span class=cF2>//Report the memory ranges reported by the BIOS at boot.</span><span class=cF0>
|
||||
<a name="l230"></a> </span><span class=cF9>U16</span><span class=cF0> *m01 = </span><span class=cFD>MEM_E801</span><span class=cF0>;
|
||||
<a name="l231"></a> </span><span class=cF9>CMemE820</span><span class=cF0> *m20 = </span><span class=cFD>MEM_E820</span><span class=cF0>;
|
||||
<a name="l232"></a> </span><span class=cF9>CMemRange</span><span class=cF0> *tmpmr;
|
||||
<a name="l233"></a>
|
||||
<a name="l234"></a> </span><span class=cF6>"$PURPLE$Standard Addresses$FG$\n"</span><span class=cF0>
|
||||
<a name="l235"></a> </span><span class=cF6>"FEE00000-FEE00FFF See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l638"><span class=cF4>APIC</span></a><span class=cF6>\n\n"</span><span class=cF0>
|
||||
<a name="l236"></a>
|
||||
<a name="l237"></a> </span><span class=cF6>"$PURPLE$VBE Linear Framebuffer$FG$\n"</span><span class=cF0>
|
||||
<a name="l238"></a> </span><span class=cF6>"%08X-%08X See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l532"><span class=cF4>VBE Mode</span></a><span class=cF6>\n"</span><span class=cF0>, </span><span class=cFB>text</span><span class=cF0>.fb_alias,
|
||||
<a name="l239"></a> </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="l240"></a> </span><span class=cF6>"\n$PURPLE$32 Bit Device Mem$FG$\n"</span><span class=cF0>;
|
||||
<a name="l241"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>LBts</span><span class=cF7>(</span><span class=cF0>&</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l242"></a> </span><span class=cF5>Yield</span><span class=cF0>;
|
||||
<a name="l243"></a> tmpmr = </span><span class=cFB>dev</span><span class=cF0>.mem32_head.next;
|
||||
<a name="l244"></a> </span><span class=cF1>while</span><span class=cF0> (tmpmr != &</span><span class=cFB>dev</span><span class=cF0>.mem32_head)
|
||||
<a name="l245"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l246"></a> </span><span class=cF6>"%z:%08X-%08X\n"</span><span class=cF0>, tmpmr->type, </span><span class=cF6>"Unused\0RAM\0Device"</span><span class=cF0>, tmpmr->base, tmpmr->base + tmpmr->size - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l247"></a> tmpmr = tmpmr->next;
|
||||
<a name="l248"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l249"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF0>);
|
||||
<a name="l250"></a>
|
||||
<a name="l251"></a> </span><span class=cF6>"\n$PURPLE$BIOS Memory Report 15:E801$FG$\n"</span><span class=cF0>
|
||||
<a name="l252"></a> </span><span class=cF6>"0000000000000000-%016X\n"</span><span class=cF0>, </span><span class=cFE>0x100000</span><span class=cF0> + m01[</span><span class=cFE>0</span><span class=cF0>] * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l253"></a> </span><span class=cF6>"0000000001000000-%016X\n"</span><span class=cF0>, </span><span class=cF3>SYS_16MEG_AREA_LIMIT</span><span class=cF0> + m01[</span><span class=cFE>1</span><span class=cF0>] * </span><span class=cFE>64</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l221"></a> tmppci->class_code, tmppci->sub_code, tmppci->prog_if;
|
||||
<a name="l222"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l223"></a> </span><span class=cF6>"$GREEN$"</span><span class=cF0>;
|
||||
<a name="l224"></a> </span><span class=cF6>"%s "</span><span class=cF0>, tmppci->vendor_str;
|
||||
<a name="l225"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l226"></a> </span><span class=cF6>"$CYAN$"</span><span class=cF0>;
|
||||
<a name="l227"></a> </span><span class=cF6>"%s"</span><span class=cF0>, tmppci->dev_id_str;
|
||||
<a name="l228"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l229"></a> </span><span class=cF6>"$FG$"</span><span class=cF0>;
|
||||
<a name="l230"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l231"></a> ,
|
||||
<a name="l232"></a> tmppci=tmppci->next;
|
||||
<a name="l233"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l234"></a>}
|
||||
<a name="l235"></a>
|
||||
<a name="l236"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Info;Memory/Info"</span><span class=cF0>
|
||||
<a name="l237"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemBIOSRep</span><span class=cF0>()
|
||||
<a name="l238"></a>{</span><span class=cF2>//Report the memory ranges reported by the BIOS at boot.</span><span class=cF0>
|
||||
<a name="l239"></a> </span><span class=cF9>U16</span><span class=cF0> *m01 = </span><span class=cFD>MEM_E801</span><span class=cF0>;
|
||||
<a name="l240"></a> </span><span class=cF9>CMemE820</span><span class=cF0> *m20 = </span><span class=cFD>MEM_E820</span><span class=cF0>;
|
||||
<a name="l241"></a> </span><span class=cF9>CMemRange</span><span class=cF0> *tmpmr;
|
||||
<a name="l242"></a>
|
||||
<a name="l243"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l244"></a> </span><span class=cF6>"$PURPLE$Standard Addresses$FG$\n"</span><span class=cF0>;
|
||||
<a name="l245"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l246"></a> </span><span class=cF6>"Standard Addresses\n"</span><span class=cF0>;
|
||||
<a name="l247"></a>
|
||||
<a name="l248"></a> </span><span class=cF6>"FEE00000-FEE00FFF See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l638"><span class=cF4>APIC</span></a><span class=cF6>\n\n"</span><span class=cF0>;
|
||||
<a name="l249"></a>
|
||||
<a name="l250"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l251"></a> </span><span class=cF6>"$PURPLE$VBE Linear Framebuffer$FG$\n"</span><span class=cF0>;
|
||||
<a name="l252"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l253"></a> </span><span class=cF6>"VBE Linear Framebuffer\n"</span><span class=cF0>;
|
||||
<a name="l254"></a>
|
||||
<a name="l255"></a> </span><span class=cF1>if</span><span class=cF0> (m20->type)
|
||||
<a name="l256"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l257"></a> </span><span class=cF6>"\n$PURPLE$BIOS Memory Report 15:E820$FG$\n"</span><span class=cF0>;
|
||||
<a name="l258"></a> </span><span class=cF1>while</span><span class=cF0> (m20->type)
|
||||
<a name="l259"></a> {
|
||||
<a name="l260"></a> </span><span class=cF6>"$RED$"</span><span class=cF0>;
|
||||
<a name="l261"></a> </span><span class=cF1>switch</span><span class=cF0>(m20->type)
|
||||
<a name="l262"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l263"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_USABLE</span><span class=cF0>:
|
||||
<a name="l264"></a> </span><span class=cF6>"$GREEN$Usable :"</span><span class=cF0>;
|
||||
<a name="l265"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l266"></a>
|
||||
<a name="l267"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI</span><span class=cF0>:
|
||||
<a name="l268"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI_NVS</span><span class=cF0>:
|
||||
<a name="l269"></a> </span><span class=cF6>"ACPI :"</span><span class=cF0>;
|
||||
<a name="l270"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l255"></a> </span><span class=cF6>"%08X-%08X See </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l532"><span class=cF4>VBE Mode</span></a><span class=cF6>\n"</span><span class=cF0>, </span><span class=cFB>text</span><span class=cF0>.fb_alias, </span><span class=cFB>text</span><span class=cF0>.fb_alias(</span><span class=cF1>U8</span><span class=cF0> *) + </span><span class=cFB>text</span><span class=cF0>.buffer_size - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l256"></a>
|
||||
<a name="l257"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l258"></a> </span><span class=cF6>"\n$PURPLE$32 Bit Device Mem$FG$\n"</span><span class=cF0>;
|
||||
<a name="l259"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l260"></a> </span><span class=cF6>"\n32 Bit Device Mem\n"</span><span class=cF0>;
|
||||
<a name="l261"></a>
|
||||
<a name="l262"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF5>LBts</span><span class=cF7>(</span><span class=cF0>&</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l263"></a> </span><span class=cF5>Yield</span><span class=cF0>;
|
||||
<a name="l264"></a> tmpmr = </span><span class=cFB>dev</span><span class=cF0>.mem32_head.next;
|
||||
<a name="l265"></a> </span><span class=cF1>while</span><span class=cF0> (tmpmr != &</span><span class=cFB>dev</span><span class=cF0>.mem32_head)
|
||||
<a name="l266"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l267"></a> </span><span class=cF6>"%z:%08X-%08X\n"</span><span class=cF0>, tmpmr->type, </span><span class=cF6>"Unused\0RAM\0Device"</span><span class=cF0>, tmpmr->base, tmpmr->base + tmpmr->size - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l268"></a> tmpmr = tmpmr->next;
|
||||
<a name="l269"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l270"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&</span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0>], </span><span class=cFE>0</span><span class=cF0>);
|
||||
<a name="l271"></a>
|
||||
<a name="l272"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_BAD_MEM</span><span class=cF0>:
|
||||
<a name="l273"></a> </span><span class=cF6>"Bad memory :"</span><span class=cF0>;
|
||||
<a name="l274"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l275"></a>
|
||||
<a name="l276"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_PERM_MEM</span><span class=cF0>:
|
||||
<a name="l277"></a> </span><span class=cF6>"Perm memory:"</span><span class=cF0>;
|
||||
<a name="l278"></a>
|
||||
<a name="l279"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_RESERVED</span><span class=cF0>:
|
||||
<a name="l280"></a> </span><span class=cF1>default</span><span class=cF0>:
|
||||
<a name="l281"></a> </span><span class=cF6>"Reserved :"</span><span class=cF0>;
|
||||
<a name="l282"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l283"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l284"></a> </span><span class=cF6>"%016X-%016X$FG$\n"</span><span class=cF0>, m20->base, m20->base + m20->len - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l285"></a> m20++;
|
||||
<a name="l286"></a> }
|
||||
<a name="l287"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l288"></a> </span><span class=cF6>"\n$PURPLE$BIOS Total Memory Report$FG$: "</span><span class=cF0>;
|
||||
<a name="l289"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>MemBIOSTotal</span><span class=cF0> < </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0>)
|
||||
<a name="l290"></a> </span><span class=cF6>"%03d MiB\n"</span><span class=cF0>, </span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l291"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l292"></a> </span><span class=cF6>"%04d GiB\n"</span><span class=cF0>, </span><span class=cF5>CeilU64</span><span class=cF0>(</span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>, </span><span class=cFE>1024</span><span class=cF0>) / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l293"></a>}
|
||||
<a name="l294"></a>
|
||||
<a name="l295"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemPageRep</span><span class=cF0>()
|
||||
<a name="l296"></a>{</span><span class=cF2>//Page Table Report.</span><span class=cF0>
|
||||
<a name="l297"></a> </span><span class=cF6>"MAPPED\t :%010X with "</span><span class=cF0>, </span><span class=cFB>mem_mapped_space</span><span class=cF0>;
|
||||
<a name="l298"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&</span><span class=cFB>mem_page_size</span><span class=cF0>, </span><span class=cFE>30</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l299"></a> </span><span class=cF6>"$RED$1GIG$FG$ pages\n"</span><span class=cF0>;
|
||||
<a name="l300"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l301"></a> </span><span class=cF6>"$RED$2MEG$FG$ pages\n"</span><span class=cF0>;
|
||||
<a name="l302"></a> </span><span class=cF6>"PML2\t :%010X 2MEG :%08X\n"</span><span class=cF0>,
|
||||
<a name="l303"></a> *</span><span class=cFD>MEM_PML2</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_2MEG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l304"></a> </span><span class=cF6>"PML3\t :%010X 1GIG :%08X\n"</span><span class=cF0>,
|
||||
<a name="l305"></a> *</span><span class=cFD>MEM_PML3</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_1GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l306"></a> </span><span class=cF6>"PML4\t :%010X 512GIG:%08X\n"</span><span class=cF0>,
|
||||
<a name="l307"></a> *</span><span class=cFD>MEM_PML4</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l308"></a> </span><span class=cF6>"FIXED_AREA:%010X\n"</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>;
|
||||
<a name="l309"></a> </span><span class=cF6>"HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n"</span><span class=cF0>, </span><span class=cFB>mem_heap_base</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
|
||||
<a name="l310"></a>}
|
||||
<a name="l272"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l273"></a> </span><span class=cF6>"\n$PURPLE$BIOS Memory Report 15:E801$FG$\n"</span><span class=cF0>;
|
||||
<a name="l274"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l275"></a> </span><span class=cF6>"\nBIOS Memory Report 15:E801\n"</span><span class=cF0>;
|
||||
<a name="l276"></a>
|
||||
<a name="l277"></a> </span><span class=cF6>"0000000000000000-%016X\n"</span><span class=cF0>, </span><span class=cFE>0x100000</span><span class=cF0> + m01[</span><span class=cFE>0</span><span class=cF0>] * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l278"></a> </span><span class=cF6>"0000000001000000-%016X\n"</span><span class=cF0>, </span><span class=cF3>SYS_16MEG_AREA_LIMIT</span><span class=cF0> + m01[</span><span class=cFE>1</span><span class=cF0>] * </span><span class=cFE>64</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l279"></a>
|
||||
<a name="l280"></a> </span><span class=cF1>if</span><span class=cF0> (m20->type)
|
||||
<a name="l281"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l282"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l283"></a> </span><span class=cF6>"\n$PURPLE$BIOS Memory Report 15:E820$FG$\n"</span><span class=cF0>;
|
||||
<a name="l284"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l285"></a> </span><span class=cF6>"\nBIOS Memory Report 15:E820\n"</span><span class=cF0>;
|
||||
<a name="l286"></a> </span><span class=cF1>while</span><span class=cF0> (m20->type)
|
||||
<a name="l287"></a> {
|
||||
<a name="l288"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l289"></a> </span><span class=cF6>"$RED$"</span><span class=cF0>;
|
||||
<a name="l290"></a> </span><span class=cF1>switch</span><span class=cF0>(m20->type)
|
||||
<a name="l291"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l292"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_USABLE</span><span class=cF0>:
|
||||
<a name="l293"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l294"></a> </span><span class=cF6>"$GREEN$"</span><span class=cF0>;
|
||||
<a name="l295"></a> </span><span class=cF6>"Usable :"</span><span class=cF0>;
|
||||
<a name="l296"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l297"></a>
|
||||
<a name="l298"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI</span><span class=cF0>:
|
||||
<a name="l299"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_ACPI_NVS</span><span class=cF0>:
|
||||
<a name="l300"></a> </span><span class=cF6>"ACPI :"</span><span class=cF0>;
|
||||
<a name="l301"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l302"></a>
|
||||
<a name="l303"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_BAD_MEM</span><span class=cF0>:
|
||||
<a name="l304"></a> </span><span class=cF6>"Bad memory :"</span><span class=cF0>;
|
||||
<a name="l305"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l306"></a>
|
||||
<a name="l307"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_PERM_MEM</span><span class=cF0>:
|
||||
<a name="l308"></a> </span><span class=cF6>"Perm memory:"</span><span class=cF0>;
|
||||
<a name="l309"></a>
|
||||
<a name="l310"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MEM_E820t_RESERVED</span><span class=cF0>:
|
||||
<a name="l311"></a> </span><span class=cF1>default</span><span class=cF0>:
|
||||
<a name="l312"></a> </span><span class=cF6>"Reserved :"</span><span class=cF0>;
|
||||
<a name="l313"></a> </span><span class=cF1>break</span><span class=cF0>;
|
||||
<a name="l314"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l315"></a> </span><span class=cF6>"%016X-%016X"</span><span class=cF0>, m20->base, m20->base + m20->len - </span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l316"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l317"></a> </span><span class=cF6>"$FG$"</span><span class=cF0>;
|
||||
<a name="l318"></a> </span><span class=cF6>'\n'</span><span class=cF0>;
|
||||
<a name="l319"></a> m20++;
|
||||
<a name="l320"></a> }
|
||||
<a name="l321"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l322"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l323"></a> </span><span class=cF6>"\n$PURPLE$BIOS Total Memory Report$FG$: "</span><span class=cF0>;
|
||||
<a name="l324"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l325"></a> </span><span class=cF6>"\nBIOS Total Memory Report: "</span><span class=cF0>;
|
||||
<a name="l326"></a>
|
||||
<a name="l327"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>MemBIOSTotal</span><span class=cF0> < </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0> * </span><span class=cFE>1024</span><span class=cF0>)
|
||||
<a name="l328"></a> </span><span class=cF6>"%03d MiB\n"</span><span class=cF0>, </span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l329"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l330"></a> </span><span class=cF6>"%04d GiB\n"</span><span class=cF0>, </span><span class=cF5>CeilU64</span><span class=cF0>(</span><span class=cF5>MemBIOSTotal</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>, </span><span class=cFE>1024</span><span class=cF0>) / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l331"></a>}
|
||||
<a name="l332"></a>
|
||||
<a name="l333"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MemPageRep</span><span class=cF0>()
|
||||
<a name="l334"></a>{</span><span class=cF2>//Page Table Report.</span><span class=cF0>
|
||||
<a name="l335"></a> </span><span class=cF6>"MAPPED\t :%010X with "</span><span class=cF0>, </span><span class=cFB>mem_mapped_space</span><span class=cF0>;
|
||||
<a name="l336"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l337"></a> </span><span class=cF6>"$RED$"</span><span class=cF0>;
|
||||
<a name="l338"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&</span><span class=cFB>mem_page_size</span><span class=cF0>, </span><span class=cFE>30</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l339"></a> </span><span class=cF6>"1GIG"</span><span class=cF0>;
|
||||
<a name="l340"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l341"></a> </span><span class=cF6>"2MEG"</span><span class=cF0>;
|
||||
<a name="l342"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l343"></a> </span><span class=cF6>"$FG$"</span><span class=cF0>;
|
||||
<a name="l344"></a>
|
||||
<a name="l345"></a> </span><span class=cF6>" pages\n"</span><span class=cF0>;
|
||||
<a name="l346"></a>
|
||||
<a name="l347"></a> </span><span class=cF6>"PML2\t :%010X 2MEG :%08X\n"</span><span class=cF0>,
|
||||
<a name="l348"></a> *</span><span class=cFD>MEM_PML2</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_2MEG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l349"></a> </span><span class=cF6>"PML3\t :%010X 1GIG :%08X\n"</span><span class=cF0>,
|
||||
<a name="l350"></a> *</span><span class=cFD>MEM_PML3</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_1GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l351"></a> </span><span class=cF6>"PML4\t :%010X 512GIG:%08X\n"</span><span class=cF0>,
|
||||
<a name="l352"></a> *</span><span class=cFD>MEM_PML4</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *), *</span><span class=cFD>MEM_512GIG_NUM</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *);
|
||||
<a name="l353"></a> </span><span class=cF6>"FIXED_AREA:%010X\n"</span><span class=cF0>, </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0>;
|
||||
<a name="l354"></a> </span><span class=cF6>"HEAP_BASE :%010X\nHEAP_LIMIT:%010X\n"</span><span class=cF0>, </span><span class=cFB>mem_heap_base</span><span class=cF0>, </span><span class=cFB>mem_heap_limit</span><span class=cF0>;
|
||||
<a name="l355"></a>}
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -30,33 +30,40 @@ body {background-color:#fef1f0;}
|
|||
<a name="l3"></a>{
|
||||
<a name="l4"></a> </span><span class=cF9>CTask</span><span class=cF0> *task1;
|
||||
<a name="l5"></a>
|
||||
<a name="l6"></a> </span><span class=cF6>"%h*c$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$ $BLACK$#%d$FG$ $TX,\"%$Q...\",SCX=16$\n"</span><span class=cF0>,
|
||||
<a name="l7"></a> indent, </span><span class=cF3>CH_SPACE</span><span class=cF0>, task, task, task->task_num, task->task_title;
|
||||
<a name="l8"></a>
|
||||
<a name="l9"></a> </span><span class=cF6>"%h*c%08X %04X:%04X:%08X\n"</span><span class=cF0>, indent + </span><span class=cFE>2</span><span class=cF0>, </span><span class=cF3>CH_SPACE</span><span class=cF0>,
|
||||
<a name="l10"></a> </span><span class=cF5>TaskMemAlloced</span><span class=cF0>(task), task->task_flags, task->display_flags, task->win_inhibit;
|
||||
<a name="l11"></a> task1 = task->next_child_task;
|
||||
<a name="l12"></a> </span><span class=cF1>while</span><span class=cF0> (task1 != </span><span class=cF7>(</span><span class=cF0>&task->next_child_task</span><span class=cF7>)(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0> - </span><span class=cF1>offset</span><span class=cF7>(</span><span class=cF9>CTask</span><span class=cF0>.next_sibling_task</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l13"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l14"></a> </span><span class=cF5>TaskRepTask</span><span class=cF0>(task1, indent + </span><span class=cFE>2</span><span class=cF0>);
|
||||
<a name="l15"></a> task1 = task1->next_sibling_task;
|
||||
<a name="l16"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l17"></a>}
|
||||
<a name="l18"></a>
|
||||
<a name="l19"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>TaskRep</span><span class=cF0>()
|
||||
<a name="l20"></a>{</span><span class=cF2>//Report current tasks on all cores.</span><span class=cF0>
|
||||
<a name="l21"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
||||
<a name="l22"></a> </span><span class=cF9>CCPU</span><span class=cF0> *c;
|
||||
<a name="l23"></a>
|
||||
<a name="l24"></a> </span><span class=cF1>PUSHFD</span><span class=cF0>
|
||||
<a name="l25"></a> </span><span class=cF1>CLI</span><span class=cF0>
|
||||
<a name="l26"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < </span><span class=cFB>mp_count</span><span class=cF0>; i++)
|
||||
<a name="l27"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l28"></a> c = &</span><span class=cFB>cpu_structs</span><span class=cF0>[i];
|
||||
<a name="l29"></a> </span><span class=cF6>"$PURPLE$CPU%02X$FG$\n"</span><span class=cF0>, i;
|
||||
<a name="l30"></a> </span><span class=cF5>TaskRepTask</span><span class=cF0>(c->executive_task, </span><span class=cFE>2</span><span class=cF0>);
|
||||
<a name="l31"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l32"></a> </span><span class=cF1>POPFD</span><span class=cF0>
|
||||
<a name="l33"></a>}
|
||||
<a name="l6"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l7"></a> </span><span class=cF6>"%h*c$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$ $BLACK$#%d$FG$ $TX,\"%$Q...\",SCX=16$\n"</span><span class=cF0>,
|
||||
<a name="l8"></a> indent, </span><span class=cF3>CH_SPACE</span><span class=cF0>, task, task, task->task_num, task->task_title;
|
||||
<a name="l9"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l10"></a> </span><span class=cF6>"%h*c%08X #%d %$Q\n"</span><span class=cF0>,
|
||||
<a name="l11"></a> indent, </span><span class=cF3>CH_SPACE</span><span class=cF0>, task, task->task_num, task->task_title;
|
||||
<a name="l12"></a>
|
||||
<a name="l13"></a> </span><span class=cF6>"%h*c%08X %04X:%04X:%08X\n"</span><span class=cF0>, indent + </span><span class=cFE>2</span><span class=cF0>, </span><span class=cF3>CH_SPACE</span><span class=cF0>,
|
||||
<a name="l14"></a> </span><span class=cF5>TaskMemAlloced</span><span class=cF0>(task), task->task_flags, task->display_flags, task->win_inhibit;
|
||||
<a name="l15"></a> task1 = task->next_child_task;
|
||||
<a name="l16"></a> </span><span class=cF1>while</span><span class=cF0> (task1 != </span><span class=cF7>(</span><span class=cF0>&task->next_child_task</span><span class=cF7>)(</span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF7>)</span><span class=cF0> - </span><span class=cF1>offset</span><span class=cF7>(</span><span class=cF9>CTask</span><span class=cF0>.next_sibling_task</span><span class=cF7>)</span><span class=cF0>)
|
||||
<a name="l17"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l18"></a> </span><span class=cF5>TaskRepTask</span><span class=cF0>(task1, indent + </span><span class=cFE>2</span><span class=cF0>);
|
||||
<a name="l19"></a> task1 = task1->next_sibling_task;
|
||||
<a name="l20"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l21"></a>}
|
||||
<a name="l22"></a>
|
||||
<a name="l23"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>TaskRep</span><span class=cF0>()
|
||||
<a name="l24"></a>{</span><span class=cF2>//Report current tasks on all cores.</span><span class=cF0>
|
||||
<a name="l25"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
||||
<a name="l26"></a> </span><span class=cF9>CCPU</span><span class=cF0> *c;
|
||||
<a name="l27"></a>
|
||||
<a name="l28"></a> </span><span class=cF1>PUSHFD</span><span class=cF0>
|
||||
<a name="l29"></a> </span><span class=cF1>CLI</span><span class=cF0>
|
||||
<a name="l30"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < </span><span class=cFB>mp_count</span><span class=cF0>; i++)
|
||||
<a name="l31"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l32"></a> c = &</span><span class=cFB>cpu_structs</span><span class=cF0>[i];
|
||||
<a name="l33"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l34"></a> </span><span class=cF6>"$PURPLE$CPU%02X$FG$\n"</span><span class=cF0>, i;
|
||||
<a name="l35"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l36"></a> </span><span class=cF6>"CPU%02X\n"</span><span class=cF0>, i;
|
||||
<a name="l37"></a> </span><span class=cF5>TaskRepTask</span><span class=cF0>(c->executive_task, </span><span class=cFE>2</span><span class=cF0>);
|
||||
<a name="l38"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l39"></a> </span><span class=cF1>POPFD</span><span class=cF0>
|
||||
<a name="l40"></a>}
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -33,31 +33,63 @@ body {background-color:#fef1f0;}
|
|||
<a name="l6"></a> </span><span class=cF1>if</span><span class=cF0> (full)
|
||||
<a name="l7"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l8"></a> </span><span class=cF6>"\nVBE Version %X.%X\n\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.version.u8[</span><span class=cFE>1</span><span class=cF0>], </span><span class=cFB>sys_vbe_info</span><span class=cF0>.version.u8[</span><span class=cFE>0</span><span class=cF0>];
|
||||
<a name="l9"></a> </span><span class=cF6>"$PURPLE$Manufacturer $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.oem;
|
||||
<a name="l10"></a> </span><span class=cF6>"$PURPLE$Vendor name $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.vendor;
|
||||
<a name="l11"></a> </span><span class=cF6>"$PURPLE$Product name $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_name;
|
||||
<a name="l12"></a> </span><span class=cF6>"$PURPLE$Product revision $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_revision;
|
||||
<a name="l13"></a> </span><span class=cF6>"$PURPLE$Software revision $FG$: $BLACK$%X.%X$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>1</span><span class=cF0>], </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>0</span><span class=cF0>];
|
||||
<a name="l14"></a> </span><span class=cF6>"$PURPLE$Hardware memory $FG$: $BLACK$%d MiB$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.total_memory * </span><span class=cFE>64</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l15"></a> </span><span class=cF6>"\n\nAll modes shown are 32-bit color.\n\n"</span><span class=cF0>;
|
||||
<a name="l16"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l17"></a> </span><span class=cF6>"$CYAN$ # W x H\t\t Mode$FG$\n\n"</span><span class=cF0>;
|
||||
<a name="l18"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < </span><span class=cF3>VBE_MODES_NUM</span><span class=cF0>; i++)
|
||||
<a name="l19"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l20"></a> mode = &</span><span class=cFB>sys_vbe_modes</span><span class=cF0>[i];
|
||||
<a name="l21"></a> </span><span class=cF1>if</span><span class=cF0> (mode->height)
|
||||
<a name="l22"></a> {
|
||||
<a name="l23"></a> </span><span class=cF6>"$PURPLE$ $BT+X,\"%d\",LM=\"%d\\n\"$$FG$$LM,4$"</span><span class=cF0>, i+</span><span class=cFE>1</span><span class=cF0>, i+</span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l24"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFB>sys_vbe_mode_num</span><span class=cF0> == mode->mode_num)
|
||||
<a name="l25"></a> </span><span class=cF6>"$RED$%4d x %4d </span><span class=cF0> </span><span class=cF6>0x%X (Current mode)$FG$$LM,0$"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l26"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l27"></a> </span><span class=cF6>"$BLACK$%4d x %4d </span><span class=cF0> </span><span class=cF6>$FG$0x%X$LM,0$"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l28"></a> </span><span class=cF6>"\n\n\n"</span><span class=cF0>;
|
||||
<a name="l29"></a> mode_count++;
|
||||
<a name="l30"></a> }
|
||||
<a name="l31"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l32"></a> </span><span class=cF1>return</span><span class=cF0> mode_count;
|
||||
<a name="l33"></a>}
|
||||
<a name="l9"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l10"></a> {
|
||||
<a name="l11"></a> </span><span class=cF6>"$PURPLE$Manufacturer $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.oem;
|
||||
<a name="l12"></a> </span><span class=cF6>"$PURPLE$Vendor name $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.vendor;
|
||||
<a name="l13"></a> </span><span class=cF6>"$PURPLE$Product name $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_name;
|
||||
<a name="l14"></a> </span><span class=cF6>"$PURPLE$Product revision $FG$: $BLACK$%s$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_revision;
|
||||
<a name="l15"></a> </span><span class=cF6>"$PURPLE$Software revision $FG$: $BLACK$%X.%X$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>1</span><span class=cF0>], </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>0</span><span class=cF0>];
|
||||
<a name="l16"></a> </span><span class=cF6>"$PURPLE$Hardware memory $FG$: $BLACK$%d MiB$FG$\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.total_memory * </span><span class=cFE>64</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l17"></a> }
|
||||
<a name="l18"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l19"></a> {
|
||||
<a name="l20"></a> </span><span class=cF6>"Manufacturer : %s\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.oem;
|
||||
<a name="l21"></a> </span><span class=cF6>"Vendor name : %s\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.vendor;
|
||||
<a name="l22"></a> </span><span class=cF6>"Product name : %s\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_name;
|
||||
<a name="l23"></a> </span><span class=cF6>"Product revision : %s\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.product_revision;
|
||||
<a name="l24"></a> </span><span class=cF6>"Software revision : %X.%X\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>1</span><span class=cF0>], </span><span class=cFB>sys_vbe_info</span><span class=cF0>.software_revision.u8[</span><span class=cFE>0</span><span class=cF0>];
|
||||
<a name="l25"></a> </span><span class=cF6>"Hardware memory : %d MiB\n"</span><span class=cF0>, </span><span class=cFB>sys_vbe_info</span><span class=cF0>.total_memory * </span><span class=cFE>64</span><span class=cF0> / </span><span class=cFE>1024</span><span class=cF0>;
|
||||
<a name="l26"></a> }
|
||||
<a name="l27"></a> </span><span class=cF6>"\n\nAll modes shown are 32-bit color.\n\n"</span><span class=cF0>;
|
||||
<a name="l28"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l29"></a>
|
||||
<a name="l30"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l31"></a> </span><span class=cF6>"$CYAN$ # W x H\t\t Mode$FG$\n\n"</span><span class=cF0>;
|
||||
<a name="l32"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l33"></a> </span><span class=cF6>" #\t\t W x H\t\t Mode\n\n"</span><span class=cF0>;
|
||||
<a name="l34"></a>
|
||||
<a name="l35"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i < </span><span class=cF3>VBE_MODES_NUM</span><span class=cF0>; i++)
|
||||
<a name="l36"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l37"></a> mode = &</span><span class=cFB>sys_vbe_modes</span><span class=cF0>[i];
|
||||
<a name="l38"></a> </span><span class=cF1>if</span><span class=cF0> (mode->height)
|
||||
<a name="l39"></a> {
|
||||
<a name="l40"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l41"></a> </span><span class=cF6>"$PURPLE$ $BT+X,\"%d\",LM=\"%d\\n\"$$FG$$LM,4$"</span><span class=cF0>, i+</span><span class=cFE>1</span><span class=cF0>, i+</span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l42"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l43"></a> </span><span class=cF6>" [%d]\t"</span><span class=cF0>, i+</span><span class=cFE>1</span><span class=cF0>;
|
||||
<a name="l44"></a>
|
||||
<a name="l45"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFB>sys_vbe_mode_num</span><span class=cF0> == mode->mode_num)
|
||||
<a name="l46"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l47"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l48"></a> </span><span class=cF6>"$RED$%4d x %4d </span><span class=cF0> </span><span class=cF6>0x%X (Current mode)$FG$$LM,0$"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l49"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l50"></a> </span><span class=cF6>"%4d x %4d </span><span class=cF0> </span><span class=cF6>0x%X (Current mode)"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l51"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l52"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l53"></a> </span><span class=cF7>{</span><span class=cF0>
|
||||
<a name="l54"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>IsRaw</span><span class=cF0>)
|
||||
<a name="l55"></a> </span><span class=cF6>"$BLACK$%4d x %4d </span><span class=cF0> </span><span class=cF6>$FG$0x%X$LM,0$"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l56"></a> </span><span class=cF1>else</span><span class=cF0>
|
||||
<a name="l57"></a> </span><span class=cF6>"%4d x %4d </span><span class=cF0> </span><span class=cF6>0x%X"</span><span class=cF0>, mode->width, mode->height, mode->mode_num;
|
||||
<a name="l58"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l59"></a>
|
||||
<a name="l60"></a> </span><span class=cF6>"\n\n\n"</span><span class=cF0>;
|
||||
<a name="l61"></a> mode_count++;
|
||||
<a name="l62"></a> }
|
||||
<a name="l63"></a> </span><span class=cF7>}</span><span class=cF0>
|
||||
<a name="l64"></a> </span><span class=cF1>return</span><span class=cF0> mode_count;
|
||||
<a name="l65"></a>}
|
||||
<a name="l66"></a>
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
532
docs/index.html
532
docs/index.html
File diff suppressed because it is too large
Load diff
|
@ -1067,13 +1067,13 @@ Obj *FishFind(I64 x1, I64 y1, I64 *_dd)
|
|||
U0 AnimateTask(I64)
|
||||
{//Steadily moves the airplane forward.
|
||||
I64 i, *s2w, x1, y1, z1, dx, dy, dz, dd;
|
||||
F64 t0 = tS,mouse, é, d;
|
||||
F64 t0 = tS, ms, é, d;
|
||||
Obj *tmpo;
|
||||
Bird *tmpb;
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
mouse = 1000 * (tS - t0);
|
||||
ms = 1000 * (tS - t0);
|
||||
t0 = tS;
|
||||
if (!game_tf)
|
||||
{
|
||||
|
@ -1087,9 +1087,9 @@ U0 AnimateTask(I64)
|
|||
dy = 0;
|
||||
dz = 1 << 16;
|
||||
Mat4x4MulXYZ(s2w, &dx, &dy, &dz);
|
||||
x -= speed * mouse * COORDINATE_SCALE * dx / 1 << 16;
|
||||
y -= speed * mouse * COORDINATE_SCALE * dy / 1 << 16;
|
||||
z -= speed * mouse * COORDINATE_SCALE * dz / 1 << 16;
|
||||
x -= speed * ms * COORDINATE_SCALE * dx / 1 << 16;
|
||||
y -= speed * ms * COORDINATE_SCALE * dy / 1 << 16;
|
||||
z -= speed * ms * COORDINATE_SCALE * dz / 1 << 16;
|
||||
Free(s2w);
|
||||
x1 = x / COORDINATE_SCALE;
|
||||
y1 = y / COORDINATE_SCALE;
|
||||
|
@ -1102,10 +1102,10 @@ U0 AnimateTask(I64)
|
|||
if (invert_pitch)
|
||||
{
|
||||
if (pitch < -ã / 8)
|
||||
č += mouse / 1000.0 * Sign(3 * ă / 8 - č);
|
||||
č += ms / 1000.0 * Sign(3 * ă / 8 - č);
|
||||
}
|
||||
else if (pitch < -ã / 8)
|
||||
č += mouse / 1000.0 * Sign(-3 * ă / 8 - č);
|
||||
č += ms / 1000.0 * Sign(-3 * ă / 8 - č);
|
||||
WrapAngles;
|
||||
}
|
||||
speed = 1.0;
|
||||
|
@ -1156,10 +1156,10 @@ U0 AnimateTask(I64)
|
|||
tmpb = b_head[i].next;
|
||||
while (tmpb != &b_head[i])
|
||||
{
|
||||
tmpb->p.x += 10 * mouse / 1000 * MAP_SCALE * Cos(tmpb->é);
|
||||
tmpb->p.y += 10 * mouse / 1000 * MAP_SCALE * Sin(tmpb->é);
|
||||
tmpb->p.x += 10 * ms / 1000 * MAP_SCALE * Cos(tmpb->é);
|
||||
tmpb->p.y += 10 * ms / 1000 * MAP_SCALE * Sin(tmpb->é);
|
||||
tmpb->p.z = BIRD_ELEVATION * MAP_SCALE + elevations[tmpb->p.y / MAP_SCALE][tmpb->p.x / MAP_SCALE];
|
||||
tmpb->é += 2 * ă * mouse / 1000 / 10;
|
||||
tmpb->é += 2 * ă * ms / 1000 / 10;
|
||||
tmpb = tmpb->next;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,11 @@ There was a technique on the Commodore 64 where disk blocks were chained togethe
|
|||
|
||||
The $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system does not allow files to grow because it only has an allocation bitmap and not a FAT table. This "flaw" is by design. Terry intentionally crippled the operating system, making it a toy with the wisdom that this will prevent commercialization and corruption. The toy spirit of the operating system will be preserved going into the future. The vision for this operating system was a modern Commodore 64, which was a fun toy.
|
||||
|
||||
Doing whole file operations is the ZealOS way of doing thinks. It is the simplest and, ironically, the fastest. It is obnoxious in the characteristic way that ZealOS is obnoxious, flaunting massive modern resources in a way that makes old programmers protest.
|
||||
Doing whole file operations is the ZealOS way of doing things. It is the simplest and, ironically, the fastest. It is obnoxious in the characteristic way that ZealOS is obnoxious, flaunting massive modern resources in a way that makes old programmers protest.
|
||||
|
||||
When doing large, whole-file operations, immediately memory fragmentation is a serious problem, but not so for allocations in the range under a Meg (with occasional larger ones).
|
||||
|
||||
The file compression scheme in ZealOS only works on whole file operations and the $LK,"DolDoc",A="FI:::/Doc/DolDoc.DD"$ format cannot have text tacked onto the end, since binary data is at the end.
|
||||
The $LK,"DolDoc",A="FI:::/Doc/DolDoc.DD"$ format cannot have text tacked onto the end, since binary data is at the end.
|
||||
|
||||
Terry didn't want to spoil fun, so of course offered a way to get awesome performance that is, ironically, superior. $LK,"FBlkRead",A="MN:FBlkRead"$() and $LK,"FBlkWrite",A="MN:FBlkWrite"$() allow you to read a block offset from the start of a file. Since files are all contiguous, this is incredibly efficient. You just have to declare the desired file size when you create it with $LK,"FOpen",A="MN:FOpen"$() and cannot change it. See $LK,"::/Demo/Disk/DataBase.CC"$.
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
* Keyboard & Mouse support.
|
||||
|
||||
* AHCI ATA Hard drives, support for $FG,2$FAT32$FG$ and $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file systems with file compression.
|
||||
* AHCI ATA Hard drives, support for $FG,2$FAT32$FG$ and $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file systems.
|
||||
|
||||
* AHCI ATAPI $FG,2$CD/DVD$FG$ support with $FG,2$RedSea$FG$ file system. Can make bootable ISO files so you can roll-your-own distro's.
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
$WW,1$GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the standard ZealOS$FG$ LZW compression.
|
||||
$WW,1$GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette.
|
||||
$HL,1$
|
||||
#define DCF_COMPRESSED 1 //This is the only saved flag.
|
||||
#define DCF_PALETTE 2
|
||||
#define DCF_PALETTE 1
|
||||
|
||||
#define TRANSPARENT 0xFF
|
||||
#define BLACK 0
|
||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@ Windows is a car.
|
|||
|
||||
ZealOS is a motorcycle -- if you lean-over too far, a motorcycle will crash. Don't do that! There are no side air bags on a motorcycle. DOS and C64 had no memory protections and ran in ring-0, with no security. This saves an order of magnitude complexity.
|
||||
|
||||
Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system allocates just contiguous files -- you load and save whole files at once. A benefit is this allows compression. Also, ZealOS does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to pieces with multimedia.
|
||||
Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system allocates just contiguous files -- you load and save whole files at once. Also, ZealOS does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to pieces with multimedia.
|
||||
|
||||
A three bttn mouse is like a leg you cannot put weight on. ZealOS just does hardware everybody has, with no divergent code bases for each machine's custom hardware. There is one graphics driver instead of 50 for different GPUs. This saves an order of magnitude complexity and makes for a delightful API, so developer's code is not like a frayed rope end.
|
||||
|
||||
|
|
|
@ -383,12 +383,15 @@ U0 DriveRep()
|
|||
if (!IsRaw)
|
||||
"$$FG,%d$$$$BG,%d$$", attr & 15, attr >> 4;
|
||||
|
||||
"%C %-8Z %-10Z SATA Port: %02d\n", drv_let,
|
||||
drive->fs_type & FSG_TYPE_MASK,
|
||||
"ST_DRIVE_TYPES",
|
||||
bd->type,
|
||||
"ST_BLKDEV_TYPES",
|
||||
bd->port_num;
|
||||
"%C %-8Z %-10Z ", drv_let,
|
||||
drive->fs_type & FSG_TYPE_MASK,
|
||||
"ST_DRIVE_TYPES",
|
||||
bd->type,
|
||||
"ST_BLKDEV_TYPES";
|
||||
if (bd->ahci_port)
|
||||
"SATA Port: %02d", bd->port_num;
|
||||
'\n';
|
||||
|
||||
if (st = DriveModelNum(drv_let))
|
||||
{
|
||||
" Model# :%s\n", st;
|
||||
|
|
|
@ -5,7 +5,6 @@ U8 *kernel_config_options = "MemInit\0"
|
|||
"VarInit\0"
|
||||
"HomeDir\0"
|
||||
"NoMP\0"
|
||||
"DontProbe\0"
|
||||
"MountAHCIAuto\0"
|
||||
"DebugDistro\0"
|
||||
"Help";
|
||||
|
@ -15,12 +14,11 @@ U8 *kernel_config_options = "MemInit\0"
|
|||
#define CONFIG_VAR_INIT 2
|
||||
#define CONFIG_HOME_DIR 3
|
||||
#define CONFIG_NO_MP 4
|
||||
#define CONFIG_DONT_PROBE 5
|
||||
#define CONFIG_MOUNT_IDE_AUTO 6
|
||||
#define CONFIG_DEBUG_DISTRO 7
|
||||
#define CONFIG_OPTIONS_NUM 8
|
||||
#define CONFIG_MOUNT_IDE_AUTO 5
|
||||
#define CONFIG_DEBUG_DISTRO 6
|
||||
#define CONFIG_OPTIONS_NUM 7
|
||||
|
||||
#define CONFIG_HELP 8
|
||||
#define CONFIG_HELP 7
|
||||
|
||||
class CKConfig
|
||||
{
|
||||
|
|
|
@ -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,752");
|
||||
$ID,2$DefinePrint("DD_ZEALOS_LOC","94,837");
|
||||
$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);
|
||||
|
|
|
@ -216,10 +216,19 @@ public U0 PCIRep()
|
|||
tmppci = dev.pci_head.next;
|
||||
while (tmppci != &dev.pci_head)
|
||||
{
|
||||
"%02X:%02X:%01X %02X-%02X-%02X $$GREEN$$%s $$CYAN$$%s$$FG$$\n",
|
||||
"%02X:%02X:%01X %02X-%02X-%02X ",
|
||||
tmppci->bus, tmppci->dev, tmppci->fun,
|
||||
tmppci->class_code, tmppci->sub_code, tmppci->prog_if,
|
||||
tmppci->vendor_str, tmppci->dev_id_str;
|
||||
tmppci->class_code, tmppci->sub_code, tmppci->prog_if;
|
||||
if (!IsRaw)
|
||||
"$$GREEN$$";
|
||||
"%s ", tmppci->vendor_str;
|
||||
if (!IsRaw)
|
||||
"$$CYAN$$";
|
||||
"%s", tmppci->dev_id_str;
|
||||
if (!IsRaw)
|
||||
"$$FG$$";
|
||||
'\n';
|
||||
,
|
||||
tmppci=tmppci->next;
|
||||
}
|
||||
}
|
||||
|
@ -231,13 +240,25 @@ public U0 MemBIOSRep()
|
|||
CMemE820 *m20 = MEM_E820;
|
||||
CMemRange *tmpmr;
|
||||
|
||||
"$$PURPLE$$Standard Addresses$$FG$$\n"
|
||||
"FEE00000-FEE00FFF See $LK,"APIC",A="MN:LAPIC_BASE"$\n\n"
|
||||
if (!IsRaw)
|
||||
"$$PURPLE$$Standard Addresses$$FG$$\n";
|
||||
else
|
||||
"Standard Addresses\n";
|
||||
|
||||
"FEE00000-FEE00FFF See $LK,"APIC",A="MN:LAPIC_BASE"$\n\n";
|
||||
|
||||
if (!IsRaw)
|
||||
"$$PURPLE$$VBE Linear Framebuffer$$FG$$\n";
|
||||
else
|
||||
"VBE Linear Framebuffer\n";
|
||||
|
||||
"%08X-%08X See $LK,"VBE Mode",A="FF:::/Kernel/KernelA.HH,framebuffer"$\n", text.fb_alias, text.fb_alias(U8 *) + text.buffer_size - 1;
|
||||
|
||||
if (!IsRaw)
|
||||
"\n$$PURPLE$$32 Bit Device Mem$$FG$$\n";
|
||||
else
|
||||
"\n32 Bit Device Mem\n";
|
||||
|
||||
"$$PURPLE$$VBE Linear Framebuffer$$FG$$\n"
|
||||
"%08X-%08X See $LK,"VBE Mode",A="FF:::/Kernel/KernelA.HH,framebuffer"$\n", text.fb_alias,
|
||||
text.fb_alias(U8 *) + text.buffer_size - 1;
|
||||
"\n$$PURPLE$$32 Bit Device Mem$$FG$$\n";
|
||||
while (LBts(&sys_semas[SEMA_DEV_MEM], 0))
|
||||
Yield;
|
||||
tmpmr = dev.mem32_head.next;
|
||||
|
@ -248,20 +269,30 @@ public U0 MemBIOSRep()
|
|||
}
|
||||
LBtr(&sys_semas[SEMA_DEV_MEM], 0);
|
||||
|
||||
"\n$$PURPLE$$BIOS Memory Report 15:E801$$FG$$\n"
|
||||
"0000000000000000-%016X\n", 0x100000 + m01[0] * 1024 - 1;
|
||||
"0000000001000000-%016X\n", SYS_16MEG_AREA_LIMIT + m01[1] * 64 * 1024 - 1;
|
||||
if (!IsRaw)
|
||||
"\n$$PURPLE$$BIOS Memory Report 15:E801$$FG$$\n";
|
||||
else
|
||||
"\nBIOS Memory Report 15:E801\n";
|
||||
|
||||
"0000000000000000-%016X\n", 0x100000 + m01[0] * 1024 - 1;
|
||||
"0000000001000000-%016X\n", SYS_16MEG_AREA_LIMIT + m01[1] * 64 * 1024 - 1;
|
||||
|
||||
if (m20->type)
|
||||
{
|
||||
"\n$$PURPLE$$BIOS Memory Report 15:E820$$FG$$\n";
|
||||
if (!IsRaw)
|
||||
"\n$$PURPLE$$BIOS Memory Report 15:E820$$FG$$\n";
|
||||
else
|
||||
"\nBIOS Memory Report 15:E820\n";
|
||||
while (m20->type)
|
||||
{
|
||||
"$$RED$$";
|
||||
if (!IsRaw)
|
||||
"$$RED$$";
|
||||
switch(m20->type)
|
||||
{
|
||||
case MEM_E820t_USABLE:
|
||||
"$$GREEN$$Usable :";
|
||||
if (!IsRaw)
|
||||
"$$GREEN$$";
|
||||
"Usable :";
|
||||
break;
|
||||
|
||||
case MEM_E820t_ACPI:
|
||||
|
@ -281,11 +312,18 @@ public U0 MemBIOSRep()
|
|||
"Reserved :";
|
||||
break;
|
||||
}
|
||||
"%016X-%016X$$FG$$\n", m20->base, m20->base + m20->len - 1;
|
||||
"%016X-%016X", m20->base, m20->base + m20->len - 1;
|
||||
if (!IsRaw)
|
||||
"$$FG$$";
|
||||
'\n';
|
||||
m20++;
|
||||
}
|
||||
}
|
||||
"\n$$PURPLE$$BIOS Total Memory Report$$FG$$: ";
|
||||
if (!IsRaw)
|
||||
"\n$$PURPLE$$BIOS Total Memory Report$$FG$$: ";
|
||||
else
|
||||
"\nBIOS Total Memory Report: ";
|
||||
|
||||
if (MemBIOSTotal < 1024 * 1024 * 1024)
|
||||
"%03d MiB\n", MemBIOSTotal / 1024 / 1024;
|
||||
else
|
||||
|
@ -295,10 +333,17 @@ public U0 MemBIOSRep()
|
|||
public U0 MemPageRep()
|
||||
{//Page Table Report.
|
||||
"MAPPED\t :%010X with ", mem_mapped_space;
|
||||
if (!IsRaw)
|
||||
"$$RED$$";
|
||||
if (Bt(&mem_page_size, 30))
|
||||
"$$RED$$1GIG$$FG$$ pages\n";
|
||||
"1GIG";
|
||||
else
|
||||
"$$RED$$2MEG$$FG$$ pages\n";
|
||||
"2MEG";
|
||||
if (!IsRaw)
|
||||
"$$FG$$";
|
||||
|
||||
" pages\n";
|
||||
|
||||
"PML2\t :%010X 2MEG :%08X\n",
|
||||
*MEM_PML2(U64 *), *MEM_2MEG_NUM(U64 *);
|
||||
"PML3\t :%010X 1GIG :%08X\n",
|
||||
|
|
|
@ -3,8 +3,12 @@ U0 TaskRepTask(CTask *task, I64 indent)
|
|||
{
|
||||
CTask *task1;
|
||||
|
||||
"%h*c$$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$$ $$BLACK$$#%d$$FG$$ $$TX,\"%$$Q...\",SCX=16$$\n",
|
||||
indent, CH_SPACE, task, task, task->task_num, task->task_title;
|
||||
if (!IsRaw)
|
||||
"%h*c$$MA,T=\"%08X\",LM=\"Kill(0x%X);\n\",$$ $$BLACK$$#%d$$FG$$ $$TX,\"%$$Q...\",SCX=16$$\n",
|
||||
indent, CH_SPACE, task, task, task->task_num, task->task_title;
|
||||
else
|
||||
"%h*c%08X #%d %$$Q\n",
|
||||
indent, CH_SPACE, task, task->task_num, task->task_title;
|
||||
|
||||
"%h*c%08X %04X:%04X:%08X\n", indent + 2, CH_SPACE,
|
||||
TaskMemAlloced(task), task->task_flags, task->display_flags, task->win_inhibit;
|
||||
|
@ -26,7 +30,10 @@ public U0 TaskRep()
|
|||
for (i = 0; i < mp_count; i++)
|
||||
{
|
||||
c = &cpu_structs[i];
|
||||
"$$PURPLE$$CPU%02X$$FG$$\n", i;
|
||||
if (!IsRaw)
|
||||
"$$PURPLE$$CPU%02X$$FG$$\n", i;
|
||||
else
|
||||
"CPU%02X\n", i;
|
||||
TaskRepTask(c->executive_task, 2);
|
||||
}
|
||||
POPFD
|
||||
|
|
|
@ -6,25 +6,57 @@ public I64 VideoRep(Bool full=TRUE)
|
|||
if (full)
|
||||
{
|
||||
"\nVBE Version %X.%X\n\n", sys_vbe_info.version.u8[1], sys_vbe_info.version.u8[0];
|
||||
"$$PURPLE$$Manufacturer $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.oem;
|
||||
"$$PURPLE$$Vendor name $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.vendor;
|
||||
"$$PURPLE$$Product name $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.product_name;
|
||||
"$$PURPLE$$Product revision $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.product_revision;
|
||||
"$$PURPLE$$Software revision $$FG$$: $$BLACK$$%X.%X$$FG$$\n", sys_vbe_info.software_revision.u8[1], sys_vbe_info.software_revision.u8[0];
|
||||
"$$PURPLE$$Hardware memory $$FG$$: $$BLACK$$%d MiB$$FG$$\n", sys_vbe_info.total_memory * 64 / 1024;
|
||||
if (!IsRaw)
|
||||
{
|
||||
"$$PURPLE$$Manufacturer $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.oem;
|
||||
"$$PURPLE$$Vendor name $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.vendor;
|
||||
"$$PURPLE$$Product name $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.product_name;
|
||||
"$$PURPLE$$Product revision $$FG$$: $$BLACK$$%s$$FG$$\n", sys_vbe_info.product_revision;
|
||||
"$$PURPLE$$Software revision $$FG$$: $$BLACK$$%X.%X$$FG$$\n", sys_vbe_info.software_revision.u8[1], sys_vbe_info.software_revision.u8[0];
|
||||
"$$PURPLE$$Hardware memory $$FG$$: $$BLACK$$%d MiB$$FG$$\n", sys_vbe_info.total_memory * 64 / 1024;
|
||||
}
|
||||
else
|
||||
{
|
||||
"Manufacturer : %s\n", sys_vbe_info.oem;
|
||||
"Vendor name : %s\n", sys_vbe_info.vendor;
|
||||
"Product name : %s\n", sys_vbe_info.product_name;
|
||||
"Product revision : %s\n", sys_vbe_info.product_revision;
|
||||
"Software revision : %X.%X\n", sys_vbe_info.software_revision.u8[1], sys_vbe_info.software_revision.u8[0];
|
||||
"Hardware memory : %d MiB\n", sys_vbe_info.total_memory * 64 / 1024;
|
||||
}
|
||||
"\n\nAll modes shown are 32-bit color.\n\n";
|
||||
}
|
||||
"$$CYAN$$ # W x H\t\t Mode$$FG$$\n\n";
|
||||
|
||||
if (!IsRaw)
|
||||
"$$CYAN$$ # W x H\t\t Mode$$FG$$\n\n";
|
||||
else
|
||||
" #\t\t W x H\t\t Mode\n\n";
|
||||
|
||||
for (i = 0; i < VBE_MODES_NUM; i++)
|
||||
{
|
||||
mode = &sys_vbe_modes[i];
|
||||
if (mode->height)
|
||||
{
|
||||
"$$PURPLE$$ $$BT+X,\"%d\",LM=\"%d\\n\"$$$$FG$$$$LM,4$$", i+1, i+1;
|
||||
if (sys_vbe_mode_num == mode->mode_num)
|
||||
"$$RED$$%4d x %4d 0x%X (Current mode)$$FG$$$$LM,0$$", mode->width, mode->height, mode->mode_num;
|
||||
if (!IsRaw)
|
||||
"$$PURPLE$$ $$BT+X,\"%d\",LM=\"%d\\n\"$$$$FG$$$$LM,4$$", i+1, i+1;
|
||||
else
|
||||
"$$BLACK$$%4d x %4d $$FG$$0x%X$$LM,0$$", mode->width, mode->height, mode->mode_num;
|
||||
" [%d]\t", i+1;
|
||||
|
||||
if (sys_vbe_mode_num == mode->mode_num)
|
||||
{
|
||||
if (!IsRaw)
|
||||
"$$RED$$%4d x %4d 0x%X (Current mode)$$FG$$$$LM,0$$", mode->width, mode->height, mode->mode_num;
|
||||
else
|
||||
"%4d x %4d 0x%X (Current mode)", mode->width, mode->height, mode->mode_num;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!IsRaw)
|
||||
"$$BLACK$$%4d x %4d $$FG$$0x%X$$LM,0$$", mode->width, mode->height, mode->mode_num;
|
||||
else
|
||||
"%4d x %4d 0x%X", mode->width, mode->height, mode->mode_num;
|
||||
}
|
||||
|
||||
"\n\n\n";
|
||||
mode_count++;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue