mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-04-12 02:38:38 +01:00
Fuck ton of renaming
This commit is contained in:
parent
6873e49b48
commit
aedb86f72d
285 changed files with 3238 additions and 3422 deletions
src
0000Boot
Adam
Apps
Compiler
Demo
AcctExample
DebugDemo.HCDefine.HCDisk
DolDoc
Games
Graphics
LastClass.HCMultiCore
OnceDemo.HCPhoneNumWords.HCRegistryDemo.HCSortFileDemo
SuggestSpelling.HCToHtmlToTXTDemo
WordSearch.HCDoc
AboutZenithOS.DDAutoComplete.DDBlkChain.DDBoot.DDCmdLineOverview.DDComm.HCCredits.DDCtrls.DDCutCorners.DDDebugFunSeg.DDDebugOverview.DDDefine.DDDemands.DDDemoIndex.DDDolDocOverview.DDEdPullDown.DDFAQ.DDFeatures.DDFileMgr.DDFileMgrPullDown.DDGlossary.DDGod.DDGraphicsOverview.DDGuideLines.DDHash.DDHeapDebug.DDHelpIndex.DDHolyC.DDInstall.DDJob.DDLex.DDMemOverview.DDMultiCore.DDOnce.DDPrint.DDQuirks.DDRedSea.DDScopingLinkage.DDSprite.DDStandBy.DDStdZenithOSPC.DDStrategy.DDTips.DDWelcome.DDWhyNotMore.DD
Home
Binary file not shown.
|
@ -1,8 +0,0 @@
|
|||
Cd(__DIR__);;
|
||||
#include "ADskA"
|
||||
#include "ADskB"
|
||||
#include "DskPrt"
|
||||
#include "Mount"
|
||||
#include "DskChk"
|
||||
#include "FileMgr"
|
||||
Cd("..");;
|
|
@ -1,70 +0,0 @@
|
|||
#help_index "Misc/Host"
|
||||
|
||||
public Bool HostChgDsk(U8 *iso_filename)
|
||||
{//Help user change CD/DVD or ISO_file.
|
||||
Bool res=FALSE;
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
try {
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
DocClear;
|
||||
"$$PURPLE$$$$TX+CX,\"Set to %s\"$$$$FG$$\n\n\n\n",iso_filename;
|
||||
switch (ins_reg.host_vm) {
|
||||
case VM_VMWARE:
|
||||
if (IsDotC(iso_filename))
|
||||
"
|
||||
Click CDROM Icon in bottom-right border of VMware window.
|
||||
|
||||
Click \"Settings\".
|
||||
|
||||
Set ISO image to \"%s\"$FG$.
|
||||
When browsing, change the file mask from \"*.iso\" to \"All Files\".
|
||||
|
||||
",iso_filename;
|
||||
else
|
||||
"
|
||||
Click CDROM Icon in bottom-right border of VMware window.
|
||||
|
||||
Click \"Settings\".
|
||||
|
||||
Set ISO image to \"$FG,2$%s$FG$\"$FG$.
|
||||
|
||||
",iso_filename;
|
||||
break;
|
||||
case VM_QEMU:
|
||||
"
|
||||
Change to QEMU monitor using $FG,2$<CTRL-ALT-2>$FG$
|
||||
|
||||
Get the CDROM designation.
|
||||
|
||||
>$FG,2$info block$FG$
|
||||
|
||||
Use the designation.
|
||||
|
||||
>$FG,2$eject ide1-cd0$FG$
|
||||
|
||||
Use the designation.
|
||||
|
||||
>$FG,2$change ide1-cd0 %s$FG$
|
||||
|
||||
Change back to QEMU using $FG,2$<CTRL-ALT-1>$FG$
|
||||
|
||||
",iso_filename;
|
||||
break;
|
||||
default:
|
||||
"
|
||||
Place the CDDVD %s in the drive.
|
||||
|
||||
",iso_filename;
|
||||
}
|
||||
if (PressAKey!=CH_SHIFT_ESC) {
|
||||
">$FG,2$DskChg('T');$FG$\n\n";
|
||||
DskChg('T');
|
||||
res=TRUE;
|
||||
}
|
||||
} catch
|
||||
PutExcept;
|
||||
SettingsPop;
|
||||
return res;
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
#help_index "Registry/Install Registration"
|
||||
|
||||
public CInsReg ins_reg;
|
||||
MemSet(&ins_reg,0,sizeof(CInsReg));
|
||||
|
||||
DefineLstLoad("ST_HOST_OSES","Other\0Native\0Linux\0Windows\0");
|
||||
DefineLstLoad("ST_HOST_VMS","Other\0Native\0VMware\0QEMU\0VirtualBox\0");
|
||||
|
||||
#define RR_UNREGISTER -1
|
||||
#define RR_REGISTER 0
|
||||
#define RR_REREGISTER 1
|
||||
|
||||
public Bool InsReg(U8 drv_let=0,I64 action=RR_REGISTER)
|
||||
{//Register this install in local $LK,"Registry.HC",A="FI:~/Registry.HC"$ file.
|
||||
CInsReg r;
|
||||
I64 old_drv_let;
|
||||
Bool res=FALSE;
|
||||
|
||||
if (action==RR_UNREGISTER) {
|
||||
MemSet(&r,0,sizeof(CInsReg));
|
||||
res=TRUE;
|
||||
} else if (action==RR_REREGISTER || !ins_reg.registered) {
|
||||
MemCpy(&r,&ins_reg,sizeof(CInsReg));
|
||||
r.registered=TRUE;
|
||||
if (PopUpForm(&r))
|
||||
res=TRUE;
|
||||
}
|
||||
|
||||
if (res) {
|
||||
old_drv_let=*sys_registry_doc->filename.name;
|
||||
if (drv_let)
|
||||
*sys_registry_doc->filename.name=drv_let;
|
||||
RegWrite("Adam/InsReg",
|
||||
"#help_index \"Registry/Install Registration\"\n"
|
||||
"MemSet(&ins_reg,0,sizeof(CInsReg));\n"
|
||||
"ins_reg.registered=%d;\n"
|
||||
"ins_reg.host_os=%d;\n"
|
||||
"ins_reg.host_vm=%d;\n"
|
||||
"\n#define INS_REG_PERSONAL_INITIALS \"%s\"\n"
|
||||
"StrCpy(ins_reg.initials,\"%s\");\n"
|
||||
"HashPublic(\"INS_REG_PERSONAL_INITIALS\",HTT_DEFINE_STR);\n"
|
||||
"\n#define INS_REG_MACHINE_NUM %d\n"
|
||||
"ins_reg.machine_num=%d;\n"
|
||||
"HashPublic(\"INS_REG_MACHINE_NUM\",HTT_DEFINE_STR);\n"
|
||||
"\n\"InsReg:%%s:%%d\\n\","
|
||||
"INS_REG_PERSONAL_INITIALS,INS_REG_MACHINE_NUM;\n"
|
||||
"\n#help_index \"\"\n"
|
||||
,r.registered,r.host_os,r.host_vm,
|
||||
r.initials,r.initials,r.machine_num,r.machine_num);
|
||||
*sys_registry_doc->filename.name=old_drv_let;
|
||||
RegExe("Adam/InsReg");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public Bool InsRereg(U8 drv_let=0)
|
||||
{//Reregister this install in local $LK,"Registry.HC",A="FI:~/Registry.HC"$ file.
|
||||
return InsReg(drv_let,RR_REREGISTER);
|
||||
}
|
||||
|
||||
public Bool InsUnreg(U8 drv_let=0)
|
||||
{//Unregister this install in local $LK,"Registry.HC",A="FI:~/Registry.HC"$ file.
|
||||
return InsReg(drv_let,RR_UNREGISTER);
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
#help_index "Misc/TOS"
|
||||
|
||||
U0 TOSStaffIns()
|
||||
{//Completes TOS install from TOS_Staff.ISO
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
DocClear;
|
||||
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TOS_Staff.ISO\"$$$$FG$$\n\n\n\n";
|
||||
InsRereg;
|
||||
|
||||
"\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n"
|
||||
"Download TOS_Supplemental2.ISO.C\tfrom http://www.templeos.org\n"
|
||||
"Download TOS_Supplemental3.ISO.C\tfrom http://www.templeos.org\n";
|
||||
|
||||
if (PressAKey!=CH_SHIFT_ESC) {
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental1.ISO.C"))
|
||||
CopyTree("T:/","~/Sup1");
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental2.ISO.C"))
|
||||
CopyTree("T:/","~/Sup2");
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental3.ISO.C"))
|
||||
CopyTree("T:/","~/Sup3");
|
||||
|
||||
Once("TOSBootHDIns;");
|
||||
"\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the "
|
||||
"distro ISO's ";
|
||||
if (YorN) {
|
||||
Once("TOSRegen;");
|
||||
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
|
||||
} else {
|
||||
"\nReboot ";
|
||||
if (YorN)
|
||||
Reboot;
|
||||
}
|
||||
}
|
||||
SettingsPop;
|
||||
}
|
||||
|
||||
public U0 TOSStdIns()
|
||||
{//Completes TOS install from TOS_Distro.ISO
|
||||
SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
DocClear;
|
||||
"$$PURPLE$$$$TX+CX,\"Complete TOS install from TOS_Distro.ISO\"$$$$FG$$\n\n\n\n";
|
||||
InsRereg;
|
||||
|
||||
"\nDownload TOS_Supplemental1.ISO.C\tfrom http://www.templeos.org\n"
|
||||
"Download TOS_Supplemental2.ISO.C\tfrom http://www.templeos.org\n"
|
||||
"Download TOS_Supplemental3.ISO.C\tfrom http://www.templeos.org\n";
|
||||
|
||||
if (PressAKey!=CH_SHIFT_ESC) {
|
||||
if (FileFind("/Demo/AcctExample"))
|
||||
CopyTree("::/Demo/AcctExample","~");
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental1.ISO.C"))
|
||||
CopyTree("T:/","~/Sup1");
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental2.ISO.C"))
|
||||
CopyTree("T:/","~/Sup2");
|
||||
if (HostChgDsk("/home/tad/Downloads/TOS_Supplemental3.ISO.C"))
|
||||
CopyTree("T:/","~/Sup3");
|
||||
|
||||
Once("TOSBootHDIns;");
|
||||
"\nDo you wish to run >$FG,2$TOSRegen;$FG$ to generate\n the distro ISO's ";
|
||||
if (YorN) {
|
||||
Once("TOSRegen;");
|
||||
BootRAM("C:/" KERNEL_BIN_C); //Boot so TOSRegen cmd is available.
|
||||
} else {
|
||||
"\nReboot ";
|
||||
if (YorN)
|
||||
Reboot;
|
||||
}
|
||||
}
|
||||
SettingsPop;
|
||||
}
|
|
@ -57,7 +57,7 @@ I64 AddTri(BallDefineStruct *,I64 c,I64 n0,I64 n1,I64 n2)
|
|||
|
||||
U8 *Ball2CSprite()
|
||||
{
|
||||
//See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
//See $LK,"::/Zenith/Gr/GrSpritePlot.HC",A="FL:::/Zenith/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
U8 *res=MAlloc(sizeof(CSpriteMeshU8s)+
|
||||
b->vertex_cnt*sizeof(CD3I32)+b->tri_cnt*sizeof(CMeshTri)
|
||||
+sprite_elem_base_sizes[SPT_END]),
|
||||
|
|
|
@ -211,7 +211,7 @@ U0 AddBox(ManDefineStruct *md,I64 c,I64 x1,I64 y1,I64 z1,
|
|||
|
||||
U8 *Man2CSprite()
|
||||
{
|
||||
//See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
//See $LK,"::/Zenith/Gr/GrSpritePlot.HC",A="FL:::/Zenith/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.
|
||||
U8 *res=MAlloc(sizeof(CSpriteMeshU8s)+
|
||||
m->vertex_cnt*sizeof(CD3I32)+m->tri_cnt*sizeof(CMeshTri)+
|
||||
sprite_elem_base_sizes[SPT_END]),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
U0 SongPuppet(CTask *task,I64 passes)
|
||||
{
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
I64 i,start,end,rip,last_rip;
|
||||
CHashFun *tmpf=NULL;
|
||||
for (i=0;i<250 && TaskValidate(task);i++) {
|
||||
|
|
|
@ -28,7 +28,7 @@ U0 PlayerIndirect()
|
|||
Unit *target,*tmpu;
|
||||
I64 i;
|
||||
for (i=0;i<UNITS_NUM;i++) {
|
||||
UserChk;
|
||||
UserCheck;
|
||||
tmpu=&units[cur_player][i];
|
||||
if (tmpu->life>0 && tmpu->indirect_fire &&
|
||||
(target=UnitNearestFind(tmpu->row,tmpu->col,enemy_player,TRUE,
|
||||
|
@ -44,7 +44,7 @@ U0 PlayerMove()
|
|||
I64 i;
|
||||
F64 x,y;
|
||||
for (i=0;i<UNITS_NUM;i++) {
|
||||
UserChk;
|
||||
UserCheck;
|
||||
tmpu=&units[cur_player][i];
|
||||
if (tmpu->life>0) {
|
||||
//Cheats because it violates Line-of-Sight
|
||||
|
@ -65,7 +65,7 @@ U0 PlayerDirect()
|
|||
Unit *target,*tmpu;
|
||||
I64 i;
|
||||
for (i=0;i<UNITS_NUM;i++) {
|
||||
UserChk;
|
||||
UserCheck;
|
||||
tmpu=&units[cur_player][i];
|
||||
if (tmpu->life>0 && !tmpu->indirect_fire &&
|
||||
(target=UnitNearestFind(tmpu->row,tmpu->col,enemy_player,TRUE,
|
||||
|
|
|
@ -91,7 +91,7 @@ U0 CharDo(U8 ch)
|
|||
}
|
||||
}
|
||||
|
||||
U0 UserChk()
|
||||
U0 UserCheck()
|
||||
{
|
||||
I64 ch;
|
||||
if (!alive_cnt[0] || !alive_cnt[1])
|
||||
|
|
|
@ -205,5 +205,5 @@ U0 AsmHashLoad()
|
|||
HashAdd(tmpc,cmp.asm_hash);
|
||||
cmp.internal_types[tmpc->raw_type]=tmpc;
|
||||
}
|
||||
adam_task->hash_table->next=cmp.asm_hash;
|
||||
zenith_task->hash_table->next=cmp.asm_hash;
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ U0 LexPutPos(CCmpCtrl *cc)
|
|||
"%s,%d ",cc->lex_include_stk->full_name,cc->lex_include_stk->line_num;
|
||||
else {
|
||||
PutFileLink(cc->lex_include_stk->full_name,,cc->lex_include_stk->line_num);
|
||||
AdamErr("%s,%d\n",
|
||||
ZenithErr("%s,%d\n",
|
||||
cc->lex_include_stk->full_name,cc->lex_include_stk->line_num);
|
||||
'' CH_SPACE;
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ U0 LexWarn(CCmpCtrl *cc,U8 *str=NULL)
|
|||
"%s\n",cc->htc.fun->src_link;
|
||||
else {
|
||||
"$$LK,\"%s\"$$\n",cc->htc.fun->src_link;
|
||||
AdamErr("%s\n",cc->htc.fun->src_link);
|
||||
ZenithErr("%s\n",cc->htc.fun->src_link);
|
||||
}
|
||||
} else
|
||||
LexPutPos(cc);
|
||||
|
@ -80,18 +80,18 @@ U0 LexWarn(CCmpCtrl *cc,U8 *str=NULL)
|
|||
|
||||
U0 LexExcept(CCmpCtrl *cc,U8 *str=NULL)
|
||||
{//Print err msg, $LK,"LexPutPos",A="MN:LexPutPos"$() and throw exception.
|
||||
if (!Bt(&sys_run_level,RLf_ADAM_SERVER)) {
|
||||
if (!Bt(&sys_run_level,RLf_ZENITH_SERVER)) {
|
||||
Raw(ON);
|
||||
"Note: Still in boot phase.\n";
|
||||
}
|
||||
if (str) PrintErr(str);
|
||||
if (!IsRaw)
|
||||
AdamErr("Task:%08X %s\n",Fs,str);
|
||||
ZenithErr("Task:%08X %s\n",Fs,str);
|
||||
LexPutPos(cc);
|
||||
cc->error_cnt++;
|
||||
FlushMsgs;
|
||||
if (!Bt(&sys_run_level,RLf_ADAM_SERVER))
|
||||
Dbg("Type \"Fix;\"");
|
||||
if (!Bt(&sys_run_level,RLf_ZENITH_SERVER))
|
||||
Debug("Type \"Fix;\"");
|
||||
throw('Compiler');
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ extern U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type);
|
|||
extern U0 OptPass5(CCmpCtrl *cc);
|
||||
extern U0 OptPass6(CCmpCtrl *cc);
|
||||
extern I64 OptPass789A(
|
||||
CCmpCtrl *cc,COptReg *reg_offsets,U8 *buf,CDbgInfo **_dbg);
|
||||
CCmpCtrl *cc,COptReg *reg_offsets,U8 *buf,CDebugInfo **_dbg);
|
||||
extern CHashClass *PrsClass(
|
||||
CCmpCtrl *cc,I64 keyword,I64 fsp_flags,Bool is_extern);
|
||||
extern CHashFun *PrsFunJoin(
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
I64 HashEntrySize(CHashSrcSym *tmph)
|
||||
{//Logical size of a std system hash entry.
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
CBinFile *bfh;
|
||||
switch (HashTypeNum(tmph)) {
|
||||
case HTt_DEFINE_STR:
|
||||
|
@ -32,7 +32,7 @@ I64 HashEntrySize(CHashSrcSym *tmph)
|
|||
|
||||
I64 HashEntrySize2(CHashSrcSym *tmph)
|
||||
{//Memory size of a std system hash entry.
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
I64 res=MSize2(tmph);
|
||||
if (!(tmph->type&HTT_DICT_WORD))
|
||||
res+=MSize2(tmph->str);
|
||||
|
@ -94,7 +94,7 @@ U0 MapFileWrite(CHashTable *h,U8 *map_name,U8 drv_let)
|
|||
U8 *src_link;
|
||||
CDoc *doc;
|
||||
CDocBin *tmpb;
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
|
||||
doc=DocNew(map_name);
|
||||
doc->flags|=DOCF_NO_CURSOR;
|
||||
|
@ -106,7 +106,7 @@ U0 MapFileWrite(CHashTable *h,U8 *map_name,U8 drv_let)
|
|||
if (drv_let && StrLen(src_link)>=4)
|
||||
src_link[3]=drv_let;
|
||||
if (dbg_info=tmph->dbg_info) {
|
||||
size=offset(CDbgInfo.body)+
|
||||
size=offset(CDebugInfo.body)+
|
||||
sizeof(U32)*(dbg_info->max_line+2-dbg_info->min_line);
|
||||
if (size>MSize(dbg_info)) {
|
||||
"Corrupt Map Entry\n";
|
||||
|
|
|
@ -145,7 +145,7 @@ U8 *CmdLinePmt()
|
|||
Free(st);
|
||||
}
|
||||
'>';
|
||||
if (IsDbgMode&&IsRaw)
|
||||
if (IsDebugMode&&IsRaw)
|
||||
RawDr;
|
||||
|
||||
LBts(&Fs->task_flags,TASKf_CMD_LINE_PMT);
|
||||
|
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
I64 OptPass789A(CCmpCtrl *cc,COptReg *reg_offsets,U8 *buf,CDbgInfo **_dbg)
|
||||
I64 OptPass789A(CCmpCtrl *cc,COptReg *reg_offsets,U8 *buf,CDebugInfo **_dbg)
|
||||
{/*cc->pass==7 is first time
|
||||
cc->pass==8 is second time
|
||||
cc->pass==9 is third time
|
||||
|
@ -15,7 +15,7 @@ cc->pass==10 is final pass, code is placed into buf.
|
|||
CAOTImportExport *tmpie;
|
||||
CAOTHeapGlbl *tmphg;
|
||||
CAOTHeapGlblRef *tmphgr;
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
CAOTCtrl *aotc=cc->aotc;
|
||||
Bool short_jmp;
|
||||
CHashClass *tmpc;
|
||||
|
@ -24,7 +24,7 @@ cc->pass==10 is final pass, code is placed into buf.
|
|||
CExternUsage *tmpeu;
|
||||
|
||||
if (_dbg) {
|
||||
*_dbg=dbg_info=CAlloc(offset(CDbgInfo.body)+sizeof(U32)*(num_lines+1));
|
||||
*_dbg=dbg_info=CAlloc(offset(CDebugInfo.body)+sizeof(U32)*(num_lines+1));
|
||||
dbg_info->min_line=cc->min_line;
|
||||
dbg_info->max_line=cc->max_line;
|
||||
if (cc->flags&CCF_AOT_COMPILE)
|
||||
|
|
|
@ -304,7 +304,7 @@ U0 PrsSizeOf(CCmpCtrl *cc)
|
|||
{
|
||||
CHashClass *tmpc;
|
||||
CMemberLst *tmpm;
|
||||
CDbgInfo *dbg_info;
|
||||
CDebugInfo *dbg_info;
|
||||
I64 i;
|
||||
if (cc->token!=TK_IDENT)
|
||||
LexExcept(cc,"Invalid class at ");
|
||||
|
|
|
@ -246,7 +246,7 @@ U0 COCHeaderPut(CCmpCtrl *cc,I64 pass,Bool put)
|
|||
cc->pass=pass;
|
||||
}
|
||||
|
||||
U8 *COCCompile(CCmpCtrl *cc,I64 *_code_size,CDbgInfo **_dbg,I64 *_type)
|
||||
U8 *COCCompile(CCmpCtrl *cc,I64 *_code_size,CDebugInfo **_dbg,I64 *_type)
|
||||
{
|
||||
U8 *res;
|
||||
CCodeMisc *lb;
|
||||
|
|
|
@ -557,7 +557,7 @@ U0 Ui(U8 *buf,U8 **_rip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE)
|
|||
break;
|
||||
end:
|
||||
disp+=rip;
|
||||
if (IsDbgMode)
|
||||
if (IsDebugMode)
|
||||
CatPrint(arg1_st,"%p ",disp);
|
||||
else if (PutSrcLink(disp,512,buf2))
|
||||
CatPrint(arg1_st,"%s ",buf2);
|
||||
|
|
|
@ -44,4 +44,4 @@ if (DrvIsWritable(':')) {
|
|||
|
||||
StartUpTasks;
|
||||
|
||||
"\nTempleOS V%5.3f\t%D %T\n\n",sys_os_version,sys_compile_time,sys_compile_time;
|
||||
"\nZenithOS V%5.3f\t%D %T\n\n",sys_os_version,sys_compile_time,sys_compile_time;
|
||||
|
|
|
@ -3,8 +3,8 @@ Cd(__DIR__);;
|
|||
//If these are not present in /Home, it uses the version in the root dir. You
|
||||
//can make your own, modified, version of these files in your /Home directory.
|
||||
#include "~/HomeLocalize"
|
||||
#include "/Adam/Opt/Boot/MakeBoot"
|
||||
#include "/Adam/Opt/Utils/MakeUtils"
|
||||
#include "/Zenith/Boot/MakeBoot"
|
||||
#include "/Zenith/Utils/MakeUtils"
|
||||
#include "~/HomeWrappers"
|
||||
MapFileLoad("::/Kernel/Kernel");
|
||||
MapFileLoad("::/Compiler/Compiler");
|
||||
|
|
Binary file not shown.
|
@ -10,7 +10,7 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
|
|||
|
||||
* Corrupt ISO.C, might be fix--no longer dependent on direntry ISO filesize
|
||||
|
||||
* DskChk CDROM
|
||||
* DiskCheck CDROM
|
||||
|
||||
* Compiler Bug: $LK,"AUWrite",A="MN:AUWrite"$() dst->cdt=t0_now+ToI64(CDATE_FREQ*(tmpsd->tS-t0_tS));
|
||||
|
||||
|
@ -22,7 +22,7 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
|
|||
|
||||
* Does entire tool chain support super/sub script?
|
||||
|
||||
* 170624 $LK,"DskChk",A="MN:DskChk"$() showed extra alloced clus for FAT32, Sup1Hymns. ClusNum was '.'+1 and clus was zero.
|
||||
* 170624 $LK,"DiskCheck",A="MN:DiskCheck"$() showed extra alloced clus for FAT32, Sup1Hymns. ClusNum was '.'+1 and clus was zero.
|
||||
|
||||
* $LK,"::/Apps/X-Caliber/X-Caliber.HC"$
|
||||
* Add asteroid harbor defense.
|
||||
|
@ -37,18 +37,18 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
|
|||
|
||||
* $MA-X+PU,"64-Bit Device Memory",LM="F(\"mem64_ptr\");View;"$ is not implemented.
|
||||
|
||||
* Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.HC,Sleep(1)"$.
|
||||
* Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Zenith/Training.HC,Sleep(1)"$.
|
||||
|
||||
* Add AVL or red/black binary tree library support. We have fixed-size stack. Auto-balancing binary tree is very needed. I've done everything myself. I don't want to ruin a perfect record. I'm in no hurry.
|
||||
|
||||
* $LK,"SpriteEd",A="FI:::/Adam/Gr/SpriteEd.HC"$ shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated.
|
||||
* $LK,"SpriteEd",A="FI:::/Zenith/Gr/SpriteEd.HC"$ shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated.
|
||||
|
||||
* God said this is bad. $LK,"FL:::/Adam/DolDoc/DocFind.HC,41"$
|
||||
* God said this is bad. $LK,"FL:::/Zenith/DolDoc/DocFind.HC,41"$
|
||||
* Backward <SHIFT-F3> is broken?
|
||||
|
||||
* $LK,"Find",A="MN:Find"$() search sprite text?
|
||||
|
||||
* Cannot include ':' in $LK,"Document Links",A="FF:::/Adam/DolDoc/DocLink.HC,AD"$ search string.
|
||||
* Cannot include ':' in $LK,"Document Links",A="FF:::/Zenith/DolDoc/DocLink.HC,AD"$ search string.
|
||||
* $$DA fixed width string: <Del> or <BACKSPACE> permanently shortens.
|
||||
|
||||
* 11/19/16 editor took long time after copying old testament onto clip and exiting.
|
||||
|
@ -61,9 +61,9 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$
|
|||
|
||||
* $LK,"DOCT_HEX_ED",A="MN:DOCT_HEX_ED"$ with odd size, ASCII cannot be edited.
|
||||
|
||||
* $LK,"FL:::/Adam/Gr/SpriteEd.HC,789"$ Resize bitmap?
|
||||
* $LK,"FL:::/Zenith/Gr/SpriteEd.HC,789"$ Resize bitmap?
|
||||
|
||||
* $LK,"DOCEF_REMALLOC_DATA",A="FF:::/Adam/DolDoc/DocChar.HC,DOCEF_REMALLOC_DATA"$ HexEdit Remalloc.
|
||||
* $LK,"DOCEF_REMALLOC_DATA",A="FF:::/Zenith/DolDoc/DocChar.HC,DOCEF_REMALLOC_DATA"$ HexEdit Remalloc.
|
||||
|
||||
* $LK,"DOCF_DBL_DOLLARS",A="MN:DOCF_DBL_DOLLARS"$ in $LK,"Reindention",A="MN:EdCodeTools2"$.
|
||||
|
||||
|
@ -124,13 +124,13 @@ $FG,5$$TX+CX,"TODO? Meh"$$FG$
|
|||
|
||||
* $LK,"Mem32DevAlloc",A="MN:Mem32DevAlloc"$() is broken. Devices should be in free spot of E820 report.
|
||||
|
||||
* $LK,"SpriteEd",A="FI:::/Adam/Gr/SpriteEd.HC"$: Strip $LK,"SPT_SHIFT",A="MN:SPT_SHIFT"$ origin cmds?
|
||||
* $LK,"SpriteEd",A="FI:::/Zenith/Gr/SpriteEd.HC"$: Strip $LK,"SPT_SHIFT",A="MN:SPT_SHIFT"$ origin cmds?
|
||||
|
||||
* Clean-up ASCII #127 delete char? (No. Maybe, we want a new usage for 127 in future centuries.)
|
||||
|
||||
* Compiler: Exceptions don't free $LK,"CCmpCtrl",A="MN:CCmpCtrl"$ stuff.
|
||||
|
||||
* $LK,"::/Adam/DolDoc/DocHighlight.HC"$ for code comments at top of documents.
|
||||
* $LK,"::/Zenith/DolDoc/DocHighlight.HC"$ for code comments at top of documents.
|
||||
|
||||
* Unhandled exception msgs from MP's get overwritten by WinMgr.
|
||||
|
||||
|
@ -147,7 +147,7 @@ $FG,5$$TX+CX,"TODO? Meh"$$FG$
|
|||
$FG,5$$TX+CX,"TODO: Too Hard, or Not Worth Doing."$$FG$
|
||||
* AutoComplete/$LK,"Man",A="MN:Man"$() Jmp for user code.
|
||||
|
||||
* $LK,"Bible sized nodes",A="FF:::/Adam/DolDoc/DocRecalc.HC,->tag+i"$
|
||||
* $LK,"Bible sized nodes",A="FF:::/Zenith/DolDoc/DocRecalc.HC,->tag+i"$
|
||||
|
||||
* $LK,"FileMgr",A="MN:FileMgr"$() is bad with lots of files.
|
||||
|
||||
|
@ -173,7 +173,7 @@ $ID,5$$HL,1$U0 Main()
|
|||
$ID,-5$$HL,0$
|
||||
* Compiler: Get rid of $LK,"0x20000",A="FF:::/Compiler/CMain.HC,0x20000"$ limit.
|
||||
|
||||
* $LK,"GrFloodFillRay",A="MN:GrFloodFillRay"$: Get rid of $LK,"0x80000",A="FF:::/Adam/Gr/GrPrimatives.HC,0x80000"$ limit.
|
||||
* $LK,"GrFloodFillRay",A="MN:GrFloodFillRay"$: Get rid of $LK,"0x80000",A="FF:::/Zenith/Gr/GrPrimatives.HC,0x80000"$ limit.
|
||||
|
||||
|
||||
$FG,5$$TX+CX,"Bugs"$$FG$
|
||||
|
@ -181,7 +181,7 @@ $FG,5$$TX+CX,"Bugs"$$FG$
|
|||
|
||||
* 1/12/16 make RAM drive 2288 blks, $FG,2$CopyTree("C:/Home","B:/Home"); $FG$ Disk runs-out of space and hangs instead of reporting errors.
|
||||
|
||||
* Bug introduced around 11/1/15. Changed $LK,"::/Kernel/Sched.HC"$ and now $LK,"WinToTop",A="MN:WinToTop"$ is called on Adam task at start-up, sometimes. Might be user's fault because of bad keys pressed during VMware power-on init. Might be fixed by $LK,"ACf_INIT_IN_PROGRESS",A="MN:ACf_INIT_IN_PROGRESS"$.
|
||||
* Bug introduced around 11/1/15. Changed $LK,"::/Kernel/Sched.HC"$ and now $LK,"WinToTop",A="MN:WinToTop"$ is called on Zenith task at start-up, sometimes. Might be user's fault because of bad keys pressed during VMware power-on init. Might be fixed by $LK,"ACf_INIT_IN_PROGRESS",A="MN:ACf_INIT_IN_PROGRESS"$.
|
||||
|
||||
* 1/12/16 $LK,"ATARepEntry",A="MN:ATARepEntry"$ shows corrupted bttns. Weird. Perhaps, my imagination.
|
||||
|
||||
|
@ -203,7 +203,7 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$
|
|||
|
||||
* 4/13/14 Strut or RawHide crashed when $LK,"sys_var_init_flag",A="MN:sys_var_init_flag"$ was set during testsuite. Perhaps, floodfill?
|
||||
|
||||
* $LK,"DskChk",A="MN:DskChk"$ alloc unalloced. I don't know if I fixed this.
|
||||
* $LK,"DiskCheck",A="MN:DiskCheck"$ alloc unalloced. I don't know if I fixed this.
|
||||
|
||||
* 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just <CTRL-m> twice. Not a bug.
|
||||
|
||||
|
@ -226,7 +226,7 @@ $ID,-5$
|
|||
|
||||
* Make $LK,"Clamp",A="MN:Clamp"$(), $LK,"Min",A="MN:Min"$(), $LK,"Max",A="MN:Max"$() into asm routines?
|
||||
|
||||
* Add local vars to sym table in $LK,"Dbg",A="MN:Dbg"$()?
|
||||
* Add local vars to sym table in $LK,"Debug",A="MN:Debug"$()?
|
||||
|
||||
* Compiler: Prints two error messages for expressions in stmts.
|
||||
|
||||
|
@ -234,7 +234,7 @@ $ID,-5$
|
|||
|
||||
* Race condition in $LK,"::/Demo/Games/FlatTops.HC"$ torpedo.
|
||||
|
||||
* Links to self document if empty file name? $LK,"Document Links",A="FF:::/Adam/DolDoc/DocLink.HC,AD"$
|
||||
* Links to self document if empty file name? $LK,"Document Links",A="FF:::/Zenith/DolDoc/DocLink.HC,AD"$
|
||||
|
||||
* $LK,"FUF_RECURSE",A="MN:FUF_RECURSE"$ would be nice if capital "+R".
|
||||
|
||||
|
@ -261,7 +261,7 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
|
|||
|
||||
* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
|
||||
|
||||
* $LK,"MP DepthBuf",A="FF:::/Adam/Gr/SpriteMesh.HC,dc->depth_buf=e->"$ is a kludge because of dc->depth_buf=NULL in various graphics routines.
|
||||
* $LK,"MP DepthBuf",A="FF:::/Zenith/Gr/SpriteMesh.HC,dc->depth_buf=e->"$ is a kludge because of dc->depth_buf=NULL in various graphics routines.
|
||||
|
||||
* Improve editor undo, add redo.
|
||||
|
||||
|
@ -278,8 +278,8 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$
|
|||
|
||||
* $LK,"GrPutChar3",A="MN:GrPutChar3"$() with depth buf?
|
||||
|
||||
* Eliminate? $LK,"::/Adam/Ctrls/CtrlsA.HC"$?
|
||||
* Eliminate? $LK,"::/Adam/AMathODE.HC"$?
|
||||
* Eliminate? $LK,"::/Zenith/Ctrls/CtrlsA.HC"$?
|
||||
* Eliminate? $LK,"::/Zenith/ZMathODE.HC"$?
|
||||
* Eliminate? $LK,"Complex",A="MN:Complex"$?
|
||||
* Eliminate? $LK,"CDC",A="MN:CDC"$.brush?
|
||||
* Eliminate? $LK,"Mat4x4MulXYZ",A="MN:Mat4x4MulXYZ"$() change to 3x3?
|
||||
|
@ -367,14 +367,14 @@ $ID,5$$$=-CTASK_NEG_OFFSET
|
|||
offset(CTask.addr)==0
|
||||
Spawn(): CAlloc()
|
||||
TaskDel(): Free()
|
||||
CSysFixedArea.adam
|
||||
CSysFixedArea.Zenith
|
||||
Looks like task_flags,locked_flags cause problems with neg offset.
|
||||
$ID,-5$
|
||||
* Make a game, S.E.T.I., with radio telescope array. Put God on air.
|
||||
|
||||
|
||||
$FG,5$$TX+CX,"Test"$$FG$
|
||||
* $LK,"SpriteBitMap",A="FI:::/Adam/Gr/SpriteBitMap.HC"$: Grabscroll?
|
||||
* $LK,"SpriteBitMap",A="FI:::/Zenith/Gr/SpriteBitMap.HC"$: Grabscroll?
|
||||
|
||||
* $LK,"DrvMap",A="MN:DrvMap"$() in $LK,"MountFile",A="MN:MountFile"$().
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
$TR-UL,"Adam"$
|
||||
$TR-UL,"Zenith"$
|
||||
$ID,2$$TR,"SysMsgFlags"$
|
||||
$ID,2$sys_msg_flags[0]=0xFF;
|
||||
$ID,-2$$TR,"SysRegVer"$
|
||||
|
@ -64,7 +64,7 @@ progress3_tf=0.000;progress4_tf=113.560;
|
|||
$ID,-2$$TR,"TempleTetris"$
|
||||
$ID,2$I64 hiscore=0;
|
||||
$ID,-2$$ID,-2$$TR,"Once"$
|
||||
$ID,2$$TR,"Adam"$
|
||||
$ID,2$$TR,"Zenith"$
|
||||
$ID,2$$ID,-2$$TR,"User"$
|
||||
$ID,2$$ID,-2$$ID,-2$$TR,"DemoCompany"$
|
||||
$ID,2$$TR,"Game1"$
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#define SLOP BLK_SIZE
|
||||
|
||||
U0 TOSDbgDistro1()
|
||||
U0 TOSDebugDistro1()
|
||||
{
|
||||
CBinFile *bfh=mem_boot_base-sizeof(CBinFile);
|
||||
bfh(I64)+=bfh->file_size-1;
|
||||
|
@ -11,15 +11,15 @@ U0 TOSDbgDistro1()
|
|||
DefinePrint("TOS_DBG_DISTRO_END", "0x%X",FloorI64(
|
||||
(BOOT_RAM_LIMIT-(BOOT_STK_SIZE+DVD_BOOT_LOADER_SIZE))>>4<<4-
|
||||
(bfh(I64)-SYS_KERNEL_END)-SLOP,BLK_SIZE));
|
||||
DefinePrint("CFG_DBG_DISTRO_FILE","\"/Tmp/DbgDistro.BIN\"");
|
||||
} TOSDbgDistro1;
|
||||
DefinePrint("CFG_DBG_DISTRO_FILE","\"/Tmp/DebugDistro.BIN\"");
|
||||
} TOSDebugDistro1;
|
||||
|
||||
U0 TOSDbgDistro2()
|
||||
U0 TOSDebugDistro2()
|
||||
{
|
||||
DefinePrint("CFG_DBG_DISTRO","\"a0x%X\n0x%X\n\"",TOS_DBG_DISTRO,
|
||||
(TOS_DBG_DISTRO_END-TOS_DBG_DISTRO)/BLK_SIZE);
|
||||
DefinePrint("CFG_DBG_DISTRO_START","\"0x%X\"",TOS_DBG_DISTRO);
|
||||
} TOSDbgDistro2;
|
||||
} TOSDebugDistro2;
|
||||
|
||||
U0 TOSInit()
|
||||
{
|
||||
|
@ -56,6 +56,6 @@ U0 TOSInit()
|
|||
#define TOS_DVD_CFG "TB\n0x20000\nT\n\n\nStaffMode\nMountIDEAuto\nCT\n"
|
||||
#define TOS_DVD_DBG_CFG "A" CFG_DBG_DISTRO\
|
||||
"B\nScale2Mem(2048,0x40000)\n\n\n"\
|
||||
"NoMP\nTextMode\nDontProbe\nDbgDistro\n"\
|
||||
"NoMP\nTextMode\nDontProbe\nDebugDistro\n"\
|
||||
"C:" CFG_DBG_DISTRO_FILE "\n"\
|
||||
CFG_DBG_DISTRO_START "\n\n"
|
||||
|
|
|
@ -40,7 +40,7 @@ public U0 TOSCopyDrv(U8 src,U8 dst)
|
|||
CopyTree(buf_s,buf_d);
|
||||
|
||||
DocClear;
|
||||
Drv(dst);
|
||||
Drive(dst);
|
||||
TOSBootHDIns(dst);
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ U0 DistroPrep()
|
|||
Move(ACD_DEF_FILENAME,ACD_DEF_FILENAME_Z);
|
||||
}
|
||||
|
||||
U0 DbgDistroFilePrep()
|
||||
U0 DebugDistroFilePrep()
|
||||
{
|
||||
CBlkDev *bd;
|
||||
if (!Let2Drv('A',FALSE)) {
|
||||
|
@ -106,16 +106,16 @@ U0 DbgDistroFilePrep()
|
|||
Copy("C:/Kernel/*.HH*", "A:/Kernel");
|
||||
CopyTree("C:/Kernel/BlkDev", "A:/Kernel/BlkDev");
|
||||
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DbgStartOS.HC","A:/StartOS.HC");
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DebugStartOS.HC","A:/StartOS.HC");
|
||||
|
||||
DirMk("A:/Adam");
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DbgMakeAdam.HC","A:/Adam/MakeAdam.HC");
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DbgMount.HC","A:/Adam");
|
||||
Copy("C:/Adam/AExts.HC", "A:/Adam");
|
||||
Copy("C:/Adam/AMath.HC", "A:/Adam");
|
||||
Copy("C:/Adam/Training.HC","A:/Adam");
|
||||
Copy("C:/Adam/AMem.HC", "A:/Adam");
|
||||
Copy("C:/Adam/TaskRep.HC", "A:/Adam");
|
||||
DirMk("A:/Zenith");
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DebugMakeZenith.HC","A:/Zenith/MakeZenith.HC");
|
||||
Copy("C:/Home/Sup1/Sup1Distro/DebugMount.HC","A:/Zenith");
|
||||
Copy("C:/Zenith/AExts.HC", "A:/Zenith");
|
||||
Copy("C:/Zenith/AMath.HC", "A:/Zenith");
|
||||
Copy("C:/Zenith/Training.HC","A:/Zenith");
|
||||
Copy("C:/Zenith/AMem.HC", "A:/Zenith");
|
||||
Copy("C:/Zenith/TaskRep.HC", "A:/Zenith");
|
||||
|
||||
FileWrite("C:" CFG_DBG_DISTRO_FILE,
|
||||
bd->RAM_dsk,(bd->max_blk+1)<<BLK_SIZE_BITS);
|
||||
|
@ -124,7 +124,7 @@ U0 DbgDistroFilePrep()
|
|||
|
||||
U0 StdDistroPrep()
|
||||
{
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
DistroPrep;
|
||||
In(STD_DISTRO_DVD_CFG);
|
||||
BootDVDIns('C');
|
||||
|
@ -144,12 +144,12 @@ U0 MakeStdDistro()
|
|||
DefinePrint("DD_TEMPLEOSCD_SIZE",
|
||||
"Download $TX,"ZenithOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
|
||||
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
}
|
||||
|
||||
U0 LiteDistroPrep()
|
||||
{
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
DistroPrep;
|
||||
In(STD_DISTRO_DVD_CFG);
|
||||
BootDVDIns('C');
|
||||
|
@ -164,8 +164,8 @@ U0 LiteDistroPrep()
|
|||
Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C);
|
||||
Del(TOS_DISTRO_DIR BOOT_DIR "/OldMBR.BIN.C");
|
||||
Del(TOS_DISTRO_DIR BOOT_DIR "/BootMHD2.BIN.C");
|
||||
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACDefs.DATA");
|
||||
Del(TOS_DISTRO_DIR "/Adam/AutoComplete/ACWords.DATA");
|
||||
Del(TOS_DISTRO_DIR "/Zenith/AutoComplete/ACDefs.DATA");
|
||||
Del(TOS_DISTRO_DIR "/Zenith/AutoComplete/ACWords.DATA");
|
||||
Del(TOS_DISTRO_DIR "/Misc/Bible.TXT");
|
||||
}
|
||||
U0 MakeLiteDistro()
|
||||
|
@ -175,14 +175,14 @@ U0 MakeLiteDistro()
|
|||
DefinePrint("DD_TEMPLEOSCD_SIZE",
|
||||
"Download $TX,"ZenithOS V5.03",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1fMB)",
|
||||
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
}
|
||||
|
||||
U0 DbgDistroPrep()
|
||||
U0 DebugDistroPrep()
|
||||
{
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
DistroPrep;
|
||||
DbgDistroFilePrep;
|
||||
DebugDistroFilePrep;
|
||||
In(TOS_DVD_DBG_CFG);
|
||||
BootDVDIns('C');
|
||||
Fmt('B',,FALSE,FSt_REDSEA);
|
||||
|
@ -194,19 +194,19 @@ U0 DbgDistroPrep()
|
|||
Del(TOS_DISTRO_DIR BOOT_DIR "/OldMBR.BIN.C");
|
||||
Del(TOS_DISTRO_DIR BOOT_DIR "/BootMHD2.BIN.C");
|
||||
}
|
||||
U0 MakeDbgDistro()
|
||||
U0 MakeDebugDistro()
|
||||
{
|
||||
DbgDistroPrep;
|
||||
DebugDistroPrep;
|
||||
RedSeaISO(TOS_ISO_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C);
|
||||
DefinePrint("DD_TEMPLEOS_DBG_SIZE",
|
||||
"Download $TX,"ZenithOS V5.03",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1fMB)",
|
||||
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
}
|
||||
|
||||
U0 StaffDistroPrep()
|
||||
{
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
DistroPrep;
|
||||
In(TOS_DVD_CFG);
|
||||
BootDVDIns('C');
|
||||
|
@ -225,7 +225,7 @@ U0 MakeStaffDistro()
|
|||
DefinePrint("DD_TEMPLEOS_STAFF_SIZE",
|
||||
"Download $TX,"ZenithOS V5.03",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1fMB)",
|
||||
0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024));
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
}
|
||||
|
||||
I64 UpdateLineCnts()
|
||||
|
@ -233,7 +233,7 @@ I64 UpdateLineCnts()
|
|||
I64 res;
|
||||
|
||||
DocClear;
|
||||
Drv('C');
|
||||
Drive('C');
|
||||
DistroPrep;
|
||||
|
||||
Cd("C:/");
|
||||
|
@ -243,12 +243,12 @@ I64 UpdateLineCnts()
|
|||
|
||||
DocMax;
|
||||
DocClear;
|
||||
res=LineRep("C:/*","-r")+LineRep("C:/Adam/*")+
|
||||
res=LineRep("C:/*","-r")+LineRep("C:/Zenith/*")+
|
||||
LineRep("C:/Compiler/*","-S+$$")+LineRep("C:/Kernel/*");
|
||||
CopyTree("B:/TOS/TOS","C:/Home");
|
||||
DelTree("B:/TOS/TOS");
|
||||
|
||||
DocTreeFWrite("C:/Adam/ADefine.HC","LineRep",
|
||||
DocTreeFWrite("C:/Zenith/ZDefine.HC","LineRep",
|
||||
"DefinePrint(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",res);
|
||||
DefinePrint("DD_TEMPLEOS_LOC","%,d",res);
|
||||
|
||||
|
@ -295,11 +295,11 @@ U0 TOSRegen2()
|
|||
tos_progress_t0=tS;
|
||||
RegExe("ZenithOS/TOSRegen");
|
||||
|
||||
TOSProgress("DskChk All");
|
||||
TOSProgress("DiskCheck All");
|
||||
AutoComplete;
|
||||
WinBorder;
|
||||
WinMax;
|
||||
DskChkAll;
|
||||
DiskCheckAll;
|
||||
|
||||
TOSProgress("Update Line Cnts");
|
||||
UpdateLineCnts;
|
||||
|
@ -328,10 +328,10 @@ U0 TOSRegen2()
|
|||
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Lite.ISO");
|
||||
#endif
|
||||
#if MAKE_DBG
|
||||
TOSProgress("Make Dbg Distro ISO");
|
||||
MakeDbgDistro;
|
||||
TOSProgress("Make Debug Distro ISO");
|
||||
MakeDebugDistro;
|
||||
DocClear;
|
||||
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Dbg.ISO");
|
||||
Move(TOS_ISO_NAME,"D:/Downloads/TOS_Debug.ISO");
|
||||
#endif
|
||||
#if MAKE_STAFF
|
||||
TOSProgress("Make Staff Distro ISO");
|
||||
|
@ -350,15 +350,15 @@ U0 TOSRegen2()
|
|||
|
||||
DocClear;
|
||||
TOSProgress("Check for Broken DolDoc Links");
|
||||
if (LinkChk)
|
||||
if (LinkCheck)
|
||||
throw;
|
||||
|
||||
TOSProgress("Find /Home");
|
||||
slash_home=F2("/Home","-i+la");
|
||||
|
||||
TOSProgress("DskChk All");
|
||||
Drv('C');
|
||||
DskChkAll;
|
||||
TOSProgress("DiskCheck All");
|
||||
Drive('C');
|
||||
DiskCheckAll;
|
||||
|
||||
TOSProgress("Done");
|
||||
SettingsPop;
|
||||
|
|
|
@ -88,12 +88,12 @@ public U0 TADHymns(I64 vol,I64 let)
|
|||
}
|
||||
|
||||
#help_index "Misc/TOS"
|
||||
public U0 DskChkAll()
|
||||
{//DskChk on C & D.
|
||||
public U0 DiskCheckAll()
|
||||
{//DiskCheck on C & D.
|
||||
U8 *ptr=TOS_HDS;
|
||||
while (*ptr) {
|
||||
"DskChk('%c')\n",*ptr;
|
||||
DskChk(*ptr++,TRUE);
|
||||
"DiskCheck('%c')\n",*ptr;
|
||||
DiskCheck(*ptr++,TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,18 +3,18 @@ Press <CTRL-ALT-c> to break.
|
|||
|
||||
Rerun Program
|
||||
|
||||
Press <CTRL-ALT-d> to enter Dbg.
|
||||
Press <CTRL-ALT-d> to enter Debug.
|
||||
> $LK,"Dr",A="MN:Dr"$; //Dump Regs
|
||||
> $LK,"G2",A="MN:G2"$; //Cont program
|
||||
|
||||
Press <CTRL-ALT-d> to enter Dbg.
|
||||
> $LK,"Uf",A="MN:Uf"$("DbgDemo");
|
||||
Press <CTRL-ALT-d> to enter Debug.
|
||||
> $LK,"Uf",A="MN:Uf"$("DebugDemo");
|
||||
> $LK,"U",A="MN:U"$(_RIP);
|
||||
|
||||
See $LK,"Debugging",A="HI:Debugging"$
|
||||
*/
|
||||
|
||||
U0 DbgDemo()
|
||||
U0 DebugDemo()
|
||||
{
|
||||
I64 i=0;
|
||||
while (TRUE)
|
||||
|
@ -22,5 +22,5 @@ U0 DbgDemo()
|
|||
".";
|
||||
}
|
||||
|
||||
DbgDemo;
|
||||
DebugDemo;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
//See $LK,"Define",A="HI:Define"$.
|
||||
|
||||
//These might be in the Adam task.
|
||||
//These might be in the Zenith task.
|
||||
DefineLoad("ST_YES_NO","(Yes or No)");
|
||||
DefineLoad("ST_EXIT","Exit");
|
||||
DefineLstLoad("ST_NO_YES_LST","No\0Yes\0");
|
||||
|
|
|
@ -37,5 +37,5 @@ U0 RawAccess(I64 drv_let=0)
|
|||
|
||||
RawAccess;
|
||||
|
||||
//See $LK,"BlkRead",A="MN:BlkRead"$(), $LK,"BlkWrite",A="MN:BlkWrite"$(), $LK,"DrvLock",A="MN:DrvLock"$(), $LK,"DrvUnlock",A="MN:DrvUnlock"$()
|
||||
//See $LK,"BlkRead",A="MN:BlkRead"$(), $LK,"BlkWrite",A="MN:BlkWrite"$(), $LK,"DrvLock",A="MN:DrvLock"$(), $LK,"DriveUnlock",A="MN:DriveUnlock"$()
|
||||
//$LK,"DBlk",A="MN:DBlk"$(), $LK,"DClus",A="MN:DClus"$(), $LK,"BlkDevLock",A="MN:BlkDevLock"$() and $LK,"BlkDevUnlock",A="MN:BlkDevUnlock"$().
|
|
@ -32,7 +32,7 @@ U0 DoIt()
|
|||
|
||||
//Flags are explained here:
|
||||
//$LK,"::/Doc/DolDocOverview.DD"$ $LK,"::/Doc/Widget.DD"$
|
||||
//$LK,"Dollar Flags",A="MN:DOCEf_TAG"$ $LK,"ST_DOC_FLAGS",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$
|
||||
//$LK,"Dollar Flags",A="MN:DOCEf_TAG"$ $LK,"ST_DOC_FLAGS",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$
|
||||
doc_e->tag_cb=&tSCB;
|
||||
DocPrint(bdoc,"$$FG$$");
|
||||
DocUnlock(bdoc);
|
||||
|
|
|
@ -19,7 +19,7 @@ U0 ClickCallBack()
|
|||
|
||||
//Flags are explained here:
|
||||
//$LK,"::/Doc/DolDocOverview.DD"$ $LK,"::/Doc/Widget.DD"$
|
||||
//$LK,"Dollar Flags",A="MN:DOCEf_TAG"$ $LK,"ST_DOC_FLAGS",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$
|
||||
//$LK,"Dollar Flags",A="MN:DOCEf_TAG"$ $LK,"ST_DOC_FLAGS",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$
|
||||
"(Not preserved if you press <CTRL-t>.)\n\n";
|
||||
doc_e->left_cb=&MyLeftCB1;
|
||||
DocUnlock(DocPut);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
-P Means it is a string var, basically.
|
||||
|
||||
,32 sets the tag string width.
|
||||
See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
See $LK,"Data Tag Width",A="FA:::/Zenith/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
|
||||
,RT=I16 means the val is 2 bytes.
|
||||
See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
|
||||
|
|
|
@ -31,7 +31,7 @@ public U0 DocProfile(U8 *filename,I64 flags)
|
|||
"See $$LK,\"CDocEntry\",A=\"MN:CDocEntry\"$$, "
|
||||
"$$LK,\"Doc Type Defines\",A=\"MN:DOCT_TEXT\"$$ and "
|
||||
"$$LK,\"Doc Type Codes\","
|
||||
"A=\"FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_CMDS\"$$.\n"
|
||||
"A=\"FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_CMDS\"$$.\n"
|
||||
"$$FG$$";
|
||||
for (i=0;i<DOCT_TYPES_NUM;i++)
|
||||
if (cmd_stats[i])
|
||||
|
@ -51,7 +51,7 @@ public U0 DocProfile(U8 *filename,I64 flags)
|
|||
"$$GREEN$$\n'$$PURPLE$$doc_e->de_flags$$GREEN$$' is 64-bit."
|
||||
"See $$LK,\"Doc Flag Defines\",A=\"MN:DOCEf_TAG\"$$ and "
|
||||
"$$LK,\"Doc Flag Codes\","
|
||||
"A=\"FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS\"$$.\n"
|
||||
"A=\"FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS\"$$.\n"
|
||||
"$$FG$$";
|
||||
for (i=0;i<64;i++)
|
||||
if (flags_stats[i])
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//gives a name to it.Strings like
|
||||
//this are known as Define entries.
|
||||
|
||||
//See $LK,"ST_RAINBOW_10",A="FF:::/Adam/Gr/GrPalette.HC,ST_RAINBOW_10"$
|
||||
//See $LK,"ST_RAINBOW_10",A="FF:::/Zenith/Gr/GrPalette.HC,ST_RAINBOW_10"$
|
||||
|
||||
U0 PrintDigit(U8 ch)
|
||||
{
|
||||
|
|
|
@ -112,7 +112,7 @@ Unit *UnitFind(I64 x,I64 y,I64 player)
|
|||
return res;
|
||||
}
|
||||
|
||||
U0 KillsChk(I64 x1,I64 y1,I64 player)
|
||||
U0 KillsCheck(I64 x1,I64 y1,I64 player)
|
||||
{
|
||||
I64 i,j,x2,y2,dd;
|
||||
Bool found;
|
||||
|
@ -338,7 +338,7 @@ cn_start:
|
|||
break;
|
||||
case MSG_MS_L_UP:
|
||||
UnitMove(tmpu,arg1,arg2);
|
||||
KillsChk(tmpu->x,tmpu->y,cur_player);
|
||||
KillsCheck(tmpu->x,tmpu->y,cur_player);
|
||||
show_start=FALSE;
|
||||
tmpu=NULL;
|
||||
cur_player=1-cur_player;
|
||||
|
|
|
@ -9,7 +9,7 @@ See $LK,"::/Demo/Graphics/Slider.HC"$
|
|||
and $LK,"::/Demo/Graphics/WallPaperFish.HC"$
|
||||
before messing with this program.
|
||||
|
||||
It must be "Adam Included".
|
||||
It must be "Zenith Included".
|
||||
*/
|
||||
|
||||
#define SLIDER_RANGE 30
|
||||
|
@ -80,8 +80,8 @@ U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool)
|
|||
CCtrl *SliderNew()
|
||||
{
|
||||
CCtrl *c;
|
||||
if (Fs!=adam_task) {
|
||||
"Must be Adam Included with SHIFT-F5.\n"
|
||||
if (Fs!=zenith_task) {
|
||||
"Must be Zenith Included with SHIFT-F5.\n"
|
||||
"(Would crash when code mem was freed.)\n";
|
||||
return NULL;
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -30,4 +30,4 @@ PressAKey;
|
|||
|
||||
ClassRep(Fs);
|
||||
|
||||
//See also $LK,"DocForm",A="MN:DocForm"$(), $LK,"::/Demo/Dsk/BlkDevRep.HC"$ and $LK,"::/Demo/ClassMeta.HC"$.
|
||||
//See also $LK,"DocForm",A="MN:DocForm"$(), $LK,"::/Demo/Disk/BlkDevRep.HC"$ and $LK,"::/Demo/ClassMeta.HC"$.
|
||||
|
|
|
@ -14,7 +14,7 @@ U0 Job1(I64)
|
|||
U0 Job2(I64)
|
||||
{//Log a file
|
||||
while (!app_done) {
|
||||
AdamLog("%F","::/Demo/MultiCore/LoadTest.HC");
|
||||
ZenithLog("%F","::/Demo/MultiCore/LoadTest.HC");
|
||||
Yield;
|
||||
}
|
||||
lock {app_done_ack--;}
|
||||
|
@ -24,7 +24,7 @@ U0 Job3(I64)
|
|||
{//Log a file
|
||||
while (!app_done) {
|
||||
Cd("::/Compiler");
|
||||
AdamLog("%F","Compiler.PRJ");
|
||||
ZenithLog("%F","Compiler.PRJ");
|
||||
Yield;
|
||||
}
|
||||
lock {app_done_ack--;}
|
||||
|
|
|
@ -9,4 +9,4 @@ U0 OnceDemo()
|
|||
|
||||
OnceDemo;
|
||||
|
||||
//There are variants for adam $LK,"AOnce",A="MN:AOnce"$().
|
||||
//There are variants for zenith $LK,"AOnce",A="MN:AOnce"$().
|
||||
|
|
|
@ -4,7 +4,7 @@ U8 char_map[26]="22233344455566677778889999";
|
|||
Fmt of word lst entry:
|
||||
U8 ACD_WORD_CHAR
|
||||
U8 word[] with terminating zero
|
||||
I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA
|
||||
I16 block; //definition offset in ::/Zenith/AutoComplete/ACDefs.DATA
|
||||
*/
|
||||
U0 PhoneNumWords(U8 *num)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*The ~/Registry.HC file is HolyC code.
|
||||
You can execute a tree branch of it.The Adam
|
||||
branch is executed in the Adam task boot phase.
|
||||
You can execute a tree branch of it.The Zenith
|
||||
branch is executed in the Zenith task boot phase.
|
||||
Normally, you will place var declarations
|
||||
in the branch you make, but since an arthmetic expression
|
||||
is valid in HolyC you can place simple expressions
|
||||
|
|
|
@ -15,7 +15,7 @@ U0 F64FileGenTXT(U8 *filename,I64 n)
|
|||
F64FileGenTXT("~/DemoUnsortedF64.DD",10);
|
||||
|
||||
U0 F64FileGenDAT(U8 *filename,I64 n)
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Dsk/DataBase.HC"$
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Disk/DataBase.HC"$
|
||||
I64 i;
|
||||
F64 *a=MAlloc(n*sizeof(F64));
|
||||
for (i=0;i<n;i++)
|
||||
|
|
|
@ -49,7 +49,7 @@ Type("~/DemoUnsortedF64.DD");
|
|||
Type("~/DemoSortedF64.DD");
|
||||
|
||||
U0 F64FileSortDAT(U8 *in_name,U8 *out_name)
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Dsk/DataBase.HC"$
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Disk/DataBase.HC"$
|
||||
I64 size;
|
||||
F64 *a=FileRead(in_name,&size);
|
||||
QSortI64(a,size/sizeof(F64),&Compare); //Sort 64-bit sized values
|
||||
|
@ -59,7 +59,7 @@ U0 F64FileSortDAT(U8 *in_name,U8 *out_name)
|
|||
F64FileSortDAT("~/DemoUnsortedF64.DATA","~/DemoSortedF64.DATA");
|
||||
|
||||
U0 F64FileDumpDAT(U8 *in_name)
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Dsk/DataBase.HC"$
|
||||
{//$LK,"File/CFile",A="HI:File/CFile"$, $LK,"::/Demo/Disk/DataBase.HC"$
|
||||
I64 i,n,size;
|
||||
F64 *a=FileRead(in_name,&size);
|
||||
n=size/sizeof(F64);
|
||||
|
|
|
@ -24,7 +24,7 @@ U8 *SuggestMatchForm(U8 *src)
|
|||
/*Fmt of word lst entry:
|
||||
U8 ACD_WORD_CHAR
|
||||
U8 word[] with terminating zero
|
||||
I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA
|
||||
I16 block; //definition offset in ::/Zenith/AutoComplete/ACDefs.DATA
|
||||
*/
|
||||
|
||||
Bool SuggestSpelling(U8 *word)
|
||||
|
@ -66,7 +66,7 @@ U0 SuggestSpellingDemo()
|
|||
}
|
||||
}
|
||||
|
||||
//If you "Adam Include" this file, it will
|
||||
//If you "Zenith Include" this file, it will
|
||||
//install this command as a hot-key.
|
||||
|
||||
U0 CtrlAltL(I64)
|
||||
|
@ -80,11 +80,11 @@ U0 CtrlAltL(I64)
|
|||
PopUp("if (SuggestSpelling(ac.cur_word)) View;");
|
||||
}
|
||||
|
||||
if (Fs!=adam_task)
|
||||
if (Fs!=zenith_task)
|
||||
SuggestSpellingDemo;
|
||||
else {
|
||||
CtrlAltCBSet('L',&CtrlAltL,"Cmd/Suggest Spelling");
|
||||
//Appears in the Adam Task Window
|
||||
//Appears in the Zenith Task Window
|
||||
"<CTRL-ALT-l> installed\n";
|
||||
}
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ U8 *TOSLinkCvt1(U8 *link_st)
|
|||
while (LBts(&locks,0))
|
||||
Yield;
|
||||
if (!bible)
|
||||
bible=Adam("DocRead(\"%s\");",filename);
|
||||
bible=Zenith("DocRead(\"%s\");",filename);
|
||||
if (DocFind(bible,num,needle))
|
||||
res=URLBibleGateway(link_st);
|
||||
LBtr(&locks,0);
|
||||
|
|
|
@ -93,7 +93,7 @@ I64 WordsCompare(U8 *e1,U8 *e2)
|
|||
/*Fmt of word lst entry:
|
||||
U8 ACD_WORD_CHAR
|
||||
U8 word[] with terminating zero
|
||||
I16 block; //definition offset in ::/Adam/AutoComplete/ACDefs.DATA
|
||||
I16 block; //definition offset in ::/Zenith/AutoComplete/ACDefs.DATA
|
||||
*/
|
||||
|
||||
U0 DisplayWords(I64 n)
|
||||
|
|
|
@ -16,4 +16,4 @@ $FG,2$<CTRL-1>$FG$ Autocompletes the 1st dictionary word in the window.
|
|||
$FG,2$<CTRL-2>$FG$ Autocompletes the 2nd dictionary word in the window.
|
||||
$FG,2$<CTRL-n>$FG$ Autocompletes the n-th dictionary word in the window.
|
||||
|
||||
If you have the raw Project Gutenberg dictionary file, you can generate the ZenithOS processed dictionary files with the stand-alone program $LK,"::/Adam/AutoComplete/ACDictGen.HC"$.
|
||||
If you have the raw Project Gutenberg dictionary file, you can generate the ZenithOS processed dictionary files with the stand-alone program $LK,"::/Zenith/AutoComplete/ACDictGen.HC"$.
|
||||
|
|
|
@ -10,7 +10,7 @@ Doing whole file operations will sabotage efforts to change the 640x480 resoluti
|
|||
|
||||
The file compression scheme in ZenithOS 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.
|
||||
|
||||
I don't want to spoil fun, so of course I offer 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/Dsk/DataBase.HC"$.
|
||||
I don't want to spoil fun, so of course I offer 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.HC"$.
|
||||
|
||||
If you like, you are encouraged to to do raw $LK,"BlkRead",A="MN:BlkRead"$() and $LK,"BlkWrite",A="MN:BlkWrite"$() directly on a drive. Just get a pointer to a $LK,"CDrv",A="MN:CDrv"$ with $LK,"Let2Drv",A="MN:Let2Drv"$() and you are on your way! Your computer is supposed to be a fun toy! You can make an entire partition used for a database, or invent a file system.
|
||||
|
||||
|
|
BIN
src/Doc/Boot.DD
BIN
src/Doc/Boot.DD
Binary file not shown.
|
@ -20,7 +20,7 @@ Most filenames end in $FG,2$$FG$ because they are stored compressed.
|
|||
|
||||
Drives are specified with a letter. The boot drive is specified with a '$FG,2$:$FG$'. The home dir drive is specified with a $FG,2$'~'$FG$.
|
||||
|
||||
>$FG,2$Drv('B');$FG$ B drive
|
||||
>$FG,2$Drive('B');$FG$ B drive
|
||||
|
||||
The drive can be specified in a $LK,"Cd",A="MN:Cd"$() command as in:
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* RS232 serial ports no longer exist.
|
||||
Be sure to Adam Include this by placing
|
||||
Be sure to Zenith Include this by placing
|
||||
it in your start-up scripts.
|
||||
*/
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ I, $FG,2$Terry A. Davis$FG$, wrote all of ZenithOS over the past $TX,"13.9",D="D
|
|||
|
||||
*) The LZW compression algorithm, $LK,"::/Kernel/Compress.HC"$, came from a magazine and I implemented it when I worked for Ticketmaster.
|
||||
|
||||
*) The adaptive-step-size-Runge-Kutta algorithm, $LK,"::/Adam/AMathODE.HC"$, is adapted from the book, $UL,1$Numeric Recipies in C$UL,0$.
|
||||
*) The adaptive-step-size-Runge-Kutta algorithm, $LK,"::/Zenith/ZMathODE.HC"$, is adapted from the book, $UL,1$Numeric Recipies in C$UL,0$.
|
||||
|
||||
*) The mountain in some games is from $FG,4$$TX,"http://www.public-domain-photos.com",HTML="http://www.public-domain-photos.com"$$FG$. The wolf in BlackDiamond is also from there. I took watermarked photos and converted to 16 color.
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
$WW,1$To create a ZenithOS graphic ctrl, you define callback functions and insert a $LK,"CCtrl",A="MN:CCtrl"$ structure in the $LK,"CTask",A="MN:CTask"$ queue. See $LK,"::/Demo/Graphics/Slider.HC"$, $LK,"::/Demo/Graphics/ScrollBars.HC"$ and $LK,"TermBttnNew",A="FF:::/Adam/WallPaper.HC,TermBttnNew"$. There is a template-code ctrl generator, if you press $FG,2$<CTRL-SHIFT-L>$FG$.
|
||||
$WW,1$To create a ZenithOS graphic ctrl, you define callback functions and insert a $LK,"CCtrl",A="MN:CCtrl"$ structure in the $LK,"CTask",A="MN:CTask"$ queue. See $LK,"::/Demo/Graphics/Slider.HC"$, $LK,"::/Demo/Graphics/ScrollBars.HC"$ and $LK,"TermBttnNew",A="FF:::/Zenith/WallPaper.HC,TermBttnNew"$. There is a template-code ctrl generator, if you press $FG,2$<CTRL-SHIFT-L>$FG$.
|
||||
|
|
|
@ -6,7 +6,7 @@ There are a few places where I cut corners in the interest of not junking-up cod
|
|||
|
||||
* ZenithOS does not figure-out $FG,2$FAT32$FG$ short name alias numbers. $LK,"FAT32DirNew",A="MN:FAT32DirNew"$(). It can cause hard drive corruption, so I might have to do it. It would really take a lot of junky code for this hatefully, detestable, legacy issue. "Please don't make me ruin my beautiful shiny-new ZenithOS with that!" I am also not enthused about $FG,2$FAT32$FG$ because it is in patent limbo. $FG,2$FAT32$FG$ might get removed from ZenithOS. There is the $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ 64-bit file system that works perfectly well. $FG,2$FAT32$FG$ is useful, however, because it assists in transferring between dual booted operating systems.
|
||||
|
||||
* I changed the $LK,"asm opcodes",A="FI:::/Compiler/OpCodes.DD"$ names to remove the ambiguity between insts with different numbers of arguments, making my $LK,"assembler",A="FI:::/Compiler/Asm.HC"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader",A="FI:::/Adam/Opt/Boot/BootDVD.HC"$.
|
||||
* I changed the $LK,"asm opcodes",A="FI:::/Compiler/OpCodes.DD"$ names to remove the ambiguity between insts with different numbers of arguments, making my $LK,"assembler",A="FI:::/Compiler/Asm.HC"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader",A="FI:::/Zenith/Boot/BootDVD.HC"$.
|
||||
|
||||
* There are no user-controlled file-sharing locks. However, the drive and file system have locks and concurrent operations should be fine.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
$WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
|
||||
|
||||
* You can enter the debugger with $LK,"Dbg",A="MN:Dbg"$() or $FG,2$<CTRL-ALT-d>$FG$. You might enter the debugger through a fault. Enter $LK,"G",A="MN:G"$() or $LK,"G2",A="MN:G2"$() to continue execution. Place a call to $LK,"Dbg",A="MN:Dbg"$() in your code at fatal error points to enter the debugger. If you see a stk dump, record the label+offset and unassemble, $LK,"U",A="MN:U"$(). $LK,"U",A="MN:U"$($LK,"_RIP",A="MN:_RIP"$);
|
||||
* You can enter the debugger with $LK,"Debug",A="MN:Debug"$() or $FG,2$<CTRL-ALT-d>$FG$. You might enter the debugger through a fault. Enter $LK,"G",A="MN:G"$() or $LK,"G2",A="MN:G2"$() to continue execution. Place a call to $LK,"Debug",A="MN:Debug"$() in your code at fatal error points to enter the debugger. If you see a stk dump, record the label+offset and unassemble, $LK,"U",A="MN:U"$(). $LK,"U",A="MN:U"$($LK,"_RIP",A="MN:_RIP"$);
|
||||
|
||||
* $LK,"U",A="MN:U"$(&FunName+offset) to unassemble mem or $LK,"Uf",A="MN:Uf"$("FunName") to unassemble a function. $LK,"U",A="MN:U"$($LK,"_RIP",A="MN:_RIP"$-16);
|
||||
|
||||
|
@ -8,7 +8,7 @@ $WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
|
|||
|
||||
* I use $LK,"progress1",A="MN:progress1"$-$LK,"progress4",A="MN:progress4"$ for debugging because they show on the wallpaper. They're just global int vars.
|
||||
|
||||
* You can use $LK,"AdamLog",A="MN:AdamLog"$() to send text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ window. It works like $LK,"Print",A="MN:Print"$(). I never use that. Instead, I use $LK,"RawPrint",A="MN:RawPrint"$().
|
||||
* You can use $LK,"ZenithLog",A="MN:ZenithLog"$() to send text to the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ window. It works like $LK,"Print",A="MN:Print"$(). I never use that. Instead, I use $LK,"RawPrint",A="MN:RawPrint"$().
|
||||
|
||||
* $LK,"D",A="MN:D"$(), $LK,"DocD",A="MN:DocD"$(), $LK,"RawD",A="MN:RawD"$() to do 16 column hex dump mem with numbering from zero. With $LK,"DocD",A="MN:DocD"$ the values are updated continually and you can alter mem by editing.
|
||||
|
||||
|
@ -24,7 +24,7 @@ $WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
|
|||
|
||||
* Use $LK,"RawPrint",A="MN:RawPrint"$() to print debug info bypassing the window framework. You pass these routines a count in milliseconds for how long it should be displayed. You can use $LK,"Raw",A="MN:Raw"$($FG,2$TRUE$FG$) to make all output bypass the window framework. The $FG,2$WinMgr$FG$ runs on $FG,2$Core0$FG$ and will overwrite raw text from other cores when it updates the scrn.
|
||||
|
||||
* Use $LK,"SysDbg",A="MN:SysDbg"$() to set a flag which you can read with $LK,"IsSysDbg",A="MN:IsSysDbg"$() when you wish to trigger some debug activity. It's just a handy simple flag, nothing fancy.
|
||||
* Use $LK,"SysDebug",A="MN:SysDebug"$() to set a flag which you can read with $LK,"IsSysDebug",A="MN:IsSysDebug"$() when you wish to trigger some debug activity. It's just a handy simple flag, nothing fancy.
|
||||
|
||||
* There are flags for various trace options that can help debugging when there are compiler bugs. Often, you place them in $FG,2$#exe{}$FG$ blocks.
|
||||
$ID,2$
|
|
@ -1,9 +1,9 @@
|
|||
$WW,1$ZenithOS has a string indirection feature implemented with the same hash symbol table entry as $FG,2$#define$FG$ macros, $LK,"HTT_DEFINE_STR",A="MN:HTT_DEFINE_STR"$. Support for string lists is also provided, but it's not very efficient, though, you can make a hash table with a list using $LK,"HashDefineLstAdd",A="MN:HashDefineLstAdd"$(). See $LK,"::/Adam/DolDoc/DocInit.HC",A="FF:::/Adam/DolDoc/DocInit.HC,HashDefineLstAdd"$.
|
||||
$WW,1$ZenithOS has a string indirection feature implemented with the same hash symbol table entry as $FG,2$#define$FG$ macros, $LK,"HTT_DEFINE_STR",A="MN:HTT_DEFINE_STR"$. Support for string lists is also provided, but it's not very efficient, though, you can make a hash table with a list using $LK,"HashDefineLstAdd",A="MN:HashDefineLstAdd"$(). See $LK,"::/Zenith/DolDoc/DocInit.HC",A="FF:::/Zenith/DolDoc/DocInit.HC,HashDefineLstAdd"$.
|
||||
|
||||
If you have an $FG,2$@$FG$ as the first char of a define list entry, it is an alias for the prev entry num.
|
||||
|
||||
Each task can load its own Define strings. Remember, when a $LK,"Hash",A="HI:Hash"$ table is searched for a string, if it is not found, the parent task's table is searched.
|
||||
|
||||
The $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ framework supports text that changes based on entries in the task's symbol table. Set a text entry with a $FG,2$D=$FG$ arg, as in $FG,2$$$TX,"",D="DD_MYSTRING"$$$FG$. See $LK,"::/Demo/DolDoc/DefineStr.HC"$, $LK,"::/Adam/ADefine.HC"$ and $LK,"::/Doc/MemOverview.DD"$.
|
||||
The $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.DD"$ framework supports text that changes based on entries in the task's symbol table. Set a text entry with a $FG,2$D=$FG$ arg, as in $FG,2$$$TX,"",D="DD_MYSTRING"$$$FG$. See $LK,"::/Demo/DolDoc/DefineStr.HC"$, $LK,"::/Zenith/ZDefine.HC"$ and $LK,"::/Doc/MemOverview.DD"$.
|
||||
|
||||
See $LK,"::/Demo/Define.HC"$.
|
||||
|
|
|
@ -6,10 +6,10 @@ $HC,"<object width=\"640\" height=\"520\"><param name=\"movie\" value=\"http://w
|
|||
|
||||
* Windows, Linux and VMware (because of mounted drives) must support $LK,"RedSea",A="FI:::/Doc/RedSea.DD"$ file system when mounting partition, so I can get rid of 1,000 lines of redundant, blemished code -- FAT32. God's temple must be perfect. Redundant code for multiple file systems is bad and imperfect. For this operating system, we want low line count. More than one driver for the same type of device is also bad.
|
||||
|
||||
See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.HC"$.
|
||||
See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Zenith/Boot/DiskISORedSea.HC"$.
|
||||
|
||||
$LK,"::/Kernel/BlkDev/FileSysFAT.HC"$ :974 lines for FAT32 gets eliminated.
|
||||
$LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk.
|
||||
$LK,"::/Kernel/BlkDev/DiskClus.HC"$ :152 All the clus operations become blk.
|
||||
|
||||
* Microsoft must cancel SecureBoot because it makes dual booting impossible. ZenithOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement. It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image. God said the C64/Apple II generation owned ancestral lands. VMware is like being taken off of our land and moved onto a reservation. In this case, however, it will not stand. In fact, God said to replace Windows with Wine, justice. We can make a 100% standard model PC with a standard software for everyone, backed-up in factory ROM.
|
||||
|
||||
|
@ -24,7 +24,7 @@ $LK,"::/Kernel/BlkDev/DskClus.HC"$ :152 All the clus operations become blk.
|
|||
* VMware needs to support more than 16 cores. I had a 24 core Xeon with 128 Gig of RAM. I discovered VMware allocates memory too slowly, where QEMU had no problem.
|
||||
|
||||
* Until super-simple block devices are available, hard disk should be placed at IDE primary master 1F0/3F6 and CD/DVD/Blu-ray should be placed at the IDE secondary master 170/376. Currently, the wicked CIA plays musical chairs with controllers each time you make an install. With tons of ugly code, I do my best.
|
||||
$LK,"/Kernel/BlkDev/DskATAId.HC",A="FI:::/Kernel/BlkDev/DskATAId.HC"$ :286 lines to figure-out I/O ports is gone.
|
||||
$LK,"/Kernel/BlkDev/DiskATAId.HC",A="FI:::/Kernel/BlkDev/DiskATAId.HC"$ :286 lines to figure-out I/O ports is gone.
|
||||
$LK,"/Kernel/PCIBIOS.HC",A="FI:::/Kernel/PCIBIOS.HC"$ :290 could be eliminated, but maybe we will keep it so people can play with PCI devices.
|
||||
|
||||
* Until super-simple serial ports are available, PS/2 emulated keyboard and mouse must work. The BIOS must enable these. The plan is to transition the industry off of USB. Interum solution is to make virtual RS232 Octart for USB devices in the same way PS/2 mouse is emulated. All mice will be two button, one wheel. No more HID insanity, no more multi-end point, just simple tx rx fifos with soft/hard flowcontrol that can jump the queue. People with special needs can buy PCI cards. Our kids deserve code this simple $LK,"::/Doc/Comm.HC"$. The right to do your own port banging is what the C64 being our God given ancestral land means.
|
||||
|
@ -48,7 +48,7 @@ $LK,"::/Kernel/Mem/PageTables.HC"$ :135 lines to identity-map gets eliminated.
|
|||
|
||||
* We must have the ultimate Bible search engine. Currently, all we have is $TX,"filter search",HTML="https://www.youtube.com/watch?v=ULJU8DzvQFo"$. In the end, it should be a low line-count technique. Maybe, I allocate 500 lines out of the 20,000 reserve.
|
||||
|
||||
* We will make a $LK,"Standard ZenithOS PC",A="FI:::/Doc/StdTempleOSPC.DD"$.
|
||||
* We will make a $LK,"Standard ZenithOS PC",A="FI:::/Doc/StdZenithOSPC.DD"$.
|
||||
$FG,8$
|
||||
* "VMware" is a trademark owned by VMware, Inc.
|
||||
* "Linux" is a trademark owned by Linus Torvalds.
|
||||
|
|
|
@ -27,7 +27,7 @@ $LK,"::/Demo/RandDemo.HC"$
|
|||
$LK,"::/Demo/KeyBitMap.HC"$
|
||||
$LK,"::/Demo/Graphics/WinZBuf.HC"$
|
||||
$LK,"::/Demo/Graphics/Elephant.HC"$
|
||||
$LK,"::/Demo/Graphics/WallPaperFish.HC"$ //Press SHIFT-F5 to Adam Include
|
||||
$LK,"::/Demo/Graphics/WallPaperFish.HC"$ //Press SHIFT-F5 to Zenith Include
|
||||
$LK,"::/Demo/Games/Digits.HC"$
|
||||
$LK,"::/Demo/Progress.HC"$ //has some ASM, just ignore
|
||||
$LK,"::/Demo/Graphics/Symmetry.HC"$
|
||||
|
@ -78,7 +78,7 @@ $LK,"::/Demo/MultiCore/Palindrome.HC"$
|
|||
$LK,"::/Demo/MultiCore/MPAdd.HC"$
|
||||
$LK,"::/Demo/MultiCore/Lock.HC"$
|
||||
$LK,"::/Demo/Graphics/Slider.HC"$
|
||||
$LK,"::/Demo/Graphics/WallPaperCtrl.HC"$ //Press SHIFT-F5 to Adam Include
|
||||
$LK,"::/Demo/Graphics/WallPaperCtrl.HC"$ //Press SHIFT-F5 to Zenith Include
|
||||
$LK,"::/Demo/Graphics/ScrollBars.HC"$
|
||||
$LK,"::/Demo/RegistryDemo.HC"$
|
||||
$LK,"::/Demo/Games/FlapBat.HC"$
|
||||
|
@ -120,7 +120,7 @@ $MA-X+PU,"::/Apps/Span",LM="Cd(\"::/Apps/Span\");Dir;View;\n"$
|
|||
$MA-X+PU,"::/Apps/Psalmody",LM="Cd(\"::/Apps/Psalmody\");Dir;View;\n"$
|
||||
$ID,-2$$TR,"Non-Game"$
|
||||
$ID,2$$LK,"::/Misc/DoDistro.HC"$
|
||||
$LK,"::/Demo/DbgDemo.HC"$
|
||||
$LK,"::/Demo/DebugDemo.HC"$
|
||||
$LK,"::/Demo/SubSwitch.HC"$
|
||||
$LK,"::/Demo/DateTime.HC"$
|
||||
$LK,"::/Demo/RevFileDemo/Rev.HC"$
|
||||
|
@ -134,10 +134,10 @@ $LK,"::/Demo/WordSearch.HC"$
|
|||
$LK,"::/Demo/Graphics/CommonAncestor.HC"$
|
||||
$LK,"::/Demo/Directives.HC"$
|
||||
$LK,"::/Demo/Carry.HC"$
|
||||
$LK,"::/Demo/Dsk/DataBase.HC"$
|
||||
$LK,"::/Demo/Dsk/FPrintF.HC"$
|
||||
$LK,"::/Demo/Dsk/DskRaw.HC"$
|
||||
$LK,"::/Demo/Dsk/UnusedSpaceRep.HC"$
|
||||
$LK,"::/Demo/Disk/DataBase.HC"$
|
||||
$LK,"::/Demo/Disk/FPrintF.HC"$
|
||||
$LK,"::/Demo/Disk/DiskRaw.HC"$
|
||||
$LK,"::/Demo/Disk/UnusedSpaceRep.HC"$
|
||||
$LK,"::/Demo/Lectures/MiniGrLib.HC"$
|
||||
$LK,"::/Demo/Lectures/MiniCompiler.HC"$
|
||||
$LK,"::/Demo/MagicPairs.HC"$
|
||||
|
@ -166,7 +166,7 @@ $LK,"::/Demo/DolDoc/MenuSprite.HC"$
|
|||
$LK,"::/Demo/DolDoc/ClickCallBack.HC"$
|
||||
$LK,"::/Demo/DolDoc/TreeDemo.HC"$
|
||||
$LK,"::/Demo/Exceptions.HC"$
|
||||
$LK,"::/Demo/Dsk/SerializeTree.HC"$
|
||||
$LK,"::/Demo/Disk/SerializeTree.HC"$
|
||||
$LK,"::/Demo/MemDemo.HC"$
|
||||
$LK,"::/Demo/StkGrow.HC"$
|
||||
$LK,"::/Demo/DolDoc/TextDemo.HC"$
|
||||
|
@ -190,5 +190,5 @@ $LK,"::/Demo/Asm/AsmAndC2.HC"$
|
|||
$LK,"::/Demo/Asm/AsmAndC3.HC"$
|
||||
$LK,"::/Demo/GlblVars.HC"$
|
||||
$LK,"::/Misc/OSTestSuite.HC"$
|
||||
$MA-X+PU,"::/Adam",LM="Cd(\"::/Adam\");Dir;View;\n"$
|
||||
$MA-X+PU,"::/Zenith",LM="Cd(\"::/Zenith\");Dir;View;\n"$
|
||||
$ID,-2$
|
||||
|
|
|
@ -4,18 +4,18 @@ DolDoc is a ZenithOS document type supported by $LK,"DolDoc Routines",A="HI:DolD
|
|||
|
||||
Here is the grammar:
|
||||
|
||||
<DolDocCmd> := $FG,2$$$$FG$<$LK,"TwoLetterCmd",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_CMDS"$>[<FlagList>][$FG,2$,$FG$<ArgList>]$FG,2$$$$FG$ | $FG,2$$$$FG$$LK,"ColorName",A="MN:ST_COLORS"$$FG,2$$$$FG$
|
||||
<DolDocCmd> := $FG,2$$$$FG$<$LK,"TwoLetterCmd",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_CMDS"$>[<FlagList>][$FG,2$,$FG$<ArgList>]$FG,2$$$$FG$ | $FG,2$$$$FG$$LK,"ColorName",A="MN:ST_COLORS"$$FG,2$$$$FG$
|
||||
|
||||
<FlagList> := $FG,2$+$FG$|$FG,2$-$FG$ <$LK,"FlagCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>[$FG$<FlagList>]
|
||||
<FlagList> := $FG,2$+$FG$|$FG,2$-$FG$ <$LK,"FlagCode",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>[$FG$<FlagList>]
|
||||
|
||||
<ArgList> := <$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$<ArgExpression>[$FG,2$,$FG$<ArgList>]
|
||||
<ArgList> := <$LK,"ArgCode",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$<ArgExpression>[$FG,2$,$FG$<ArgList>]
|
||||
|
||||
|
||||
The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have mandatory args. Optional args are indicated with <$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$. A $LK,"ColorName",A="MN:ST_COLORS"$ bracked by dollars, will change the foreground color.
|
||||
The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have mandatory args. Optional args are indicated with <$LK,"ArgCode",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$>$FG,2$=$FG$. A $LK,"ColorName",A="MN:ST_COLORS"$ bracked by dollars, will change the foreground color.
|
||||
|
||||
See $LK,"::/Doc/Widget.DD"$, $LK,"::/Demo/DolDoc/DemoDoc.DD"$, and $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$.
|
||||
|
||||
<$LK,"TwoLetterCmd",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_CMDS"$> See $LK,"Type Defines",A="MN:DOCT_TEXT"$ and $LK,"PrsDollarCmd",A="MN:PrsDollarCmd"$().
|
||||
<$LK,"TwoLetterCmd",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_CMDS"$> See $LK,"Type Defines",A="MN:DOCT_TEXT"$ and $LK,"PrsDollarCmd",A="MN:PrsDollarCmd"$().
|
||||
$TR,"TX Text"$
|
||||
$ID,2$Normally, text is not bracketed with '$FG,2$$$$FG$', but if you wish to specify flag attr, such as centering text, you can bracket them with '$FG,2$$$$FG$' and enter flags such as "$FG,2$+CX$FG$". You can't edit them normally if they are bracketed by '$FG,2$$$$FG$' unless you toggle to plain text mode with $FG,2$<CTRL-t>$FG$.
|
||||
$ID,-2$$TR,"CR Hard New Line"$
|
||||
|
@ -123,9 +123,9 @@ Examples: <CTRL-t> to see
|
|||
$ID,-2$$TR,"BT Bttn"$
|
||||
$ID,2$See $LK,"::/Demo/DolDoc/MenuBttn.HC"$.
|
||||
$ID,-2$$TR,"DA Data"$
|
||||
$ID,2$Used for forms that prompt for data or just displaying a value. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$, $LK,"::/Demo/Dsk/DataBase.HC"$, and $LK,"::/Adam/DolDoc/DocWidgetWiz.HC"$.
|
||||
$ID,2$Used for forms that prompt for data or just displaying a value. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$, $LK,"::/Demo/Disk/DataBase.HC"$, and $LK,"::/Zenith/DolDoc/DocWidgetWiz.HC"$.
|
||||
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$DA...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$DA...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Zenith/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
|
||||
The default raw data type for the $FG,2$$$DA...$$$FG$ command is $FG,2$RT=I64$FG$. $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition if you leave it set to the default. Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$. See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
|
||||
|
||||
|
@ -133,17 +133,17 @@ The $LK,"CDocEntry",A="MN:CDocEntry"$.aux_str arg $FG,2$A=""$FG$ is used for the
|
|||
|
||||
The default field length is $FG,2$LEN=64$FG$ characters. For U8 arrays[], $LK,"DocForm",A="MN:DocForm"$() will automatically reset the field length to the string length from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition. The length measures starting after the ':' in the $FG,2$A=""$FG$ format string.
|
||||
|
||||
The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Zenith/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
$ID,-2$$TR,"CB Check Box"$
|
||||
$ID,2$Used for forms. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$$FG$ and $LK,"CEdFindText",A="MN:CEdFindText"$.
|
||||
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$CB...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$CB...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr. See $LK,"task_title",A="FF:::/Zenith/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
|
||||
The default raw data type for the $FG,2$$$CB...$$$FG$ command is $FG,2$RT=I8$FG$ which is $FG,2$Bool$FG$. $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition if you leave it set to the default. Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$. See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
|
||||
$ID,-2$$TR,"LS List Widget"$
|
||||
$ID,2$Used for forms that prompt for data. You must specify a define list, $FG,2$D=""$FG$. Use $FG,2$<CTRL-l>$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's $FG,2$format$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$(). See $LK,"::/Demo/DolDoc/Form.HC"$.
|
||||
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$LS...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the data addr. See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$LS...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the data addr. See $LK,"task_title",A="FF:::/Zenith/DolDoc/DocEd.HC,&Fs->task_title"$.
|
||||
|
||||
The default raw data type for the $FG,2$$$LS...$$$FG$ command is $FG,2$RT=I64$FG$. $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition if you leave it set to the default. Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$. See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
|
||||
$ID,-2$$TR,"MA Macro"$
|
||||
|
@ -188,7 +188,7 @@ $ID,2$See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.HC"$ to generate a html version of
|
|||
$ID,-2$$TR,"ER Error"$
|
||||
$ID,2$When errors are detected in DolDoc cmds, an $FG,2$ER$FG$ entry is generated.
|
||||
$ID,-2$
|
||||
<$LK,"FlagCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$> See $LK,"Flag Defines",A="MN:DOCEf_LEFT_CB"$ and $LK,"Simple Flags",A="FI:::/Doc/Widget.DD"$.
|
||||
<$LK,"FlagCode",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$> See $LK,"Flag Defines",A="MN:DOCEf_LEFT_CB"$ and $LK,"Simple Flags",A="FI:::/Doc/Widget.DD"$.
|
||||
$TR,"+H Hold"$
|
||||
$ID,2$Causes not to delete this cmd when cleared with $FG,2$CL$FG$ or when the doc->max_entries is exceeded. Word wrap is a good to hold. There is no way to delete these entries, at this point.
|
||||
$ID,-2$$TR,"+L Link"$
|
||||
|
@ -220,19 +220,19 @@ $ID,2$See $LK,"::/Demo/DolDoc/ClickCallBack.HC"$.
|
|||
$ID,-2$$TR,"+RC Right CallBack"$
|
||||
$ID,2$See $LK,"::/Demo/DolDoc/ClickCallBack.HC"$.
|
||||
$ID,-2$
|
||||
<$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.HC,ST_DOC_FLAGS"$> See $LK,"Arg Defines",A="MN:DOCEf_TAG"$.
|
||||
<$LK,"ArgCode",A="FF:::/Zenith/DolDoc/DocInit.HC,ST_DOC_FLAGS"$> See $LK,"Arg Defines",A="MN:DOCEf_TAG"$.
|
||||
$TR,"T=\"\" Tag Str"$
|
||||
$ID,2$Some cmds have a tag by default. See $LK,"TX+T",A="FF:::/Adam/DolDoc/DocInit.HC,TX+T"$. You can code $FG,2$T="tag_text"$FG$ as just $FG,2$"tag_text"$FG$ with no $FG,2$T=$FG$.
|
||||
$ID,2$Some cmds have a tag by default. See $LK,"TX+T",A="FF:::/Zenith/DolDoc/DocInit.HC,TX+T"$. You can code $FG,2$T="tag_text"$FG$ as just $FG,2$"tag_text"$FG$ with no $FG,2$T=$FG$.
|
||||
$ID,-2$$TR,"LEN=\"\" Field Length"$
|
||||
$ID,2$The default field length for $FG,2$$$DA...$$$FG$ commands is $FG,2$LEN=64$FG$ characters. For U8 arrays[], $LK,"DocForm",A="MN:DocForm"$() will automatically reset the field length to the string length from the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ $FG,2$class$FG$ member's definition. The length measures starting after the ':' in the $FG,2$A=""$FG$ format string.
|
||||
|
||||
The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
The space after the first ':' in the format string marks the first valid cursor pos. See $LK,"Data Tag Width",A="FA:::/Zenith/DolDoc/DocPlain.HC,DataTagWidth"$.
|
||||
$ID,-2$$TR,"A=\"\" Auxilliary Str"$
|
||||
$ID,2$Some cmds need auxilliary strings. $FG,2$A="str"$FG$ means an $LK,"CDocEntry",A="MN:CDocEntry"$.aux_str is present. aux_str is used for song note text, link text, anchor text, and $FG,2$$$DA...$$$FG$ format string text.
|
||||
$ID,-2$$TR,"D=\"\" Define Str"$
|
||||
$ID,2$A $FG,2$D=""$FG$ means either a $LK,"define",A="HI:Define"$ str indirection is present on a text widget, or a define list is present on a list widget.
|
||||
|
||||
For indirection, the tag will be regenerated by substituting the value of a system $FG,2$#define$FG$ or $LK,"DefineLoad",A="MN:DefineLoad"$() string. See $LK,"::/Demo/DolDoc/DefineStr.HC"$, $LK,"::/Adam/ADefine.HC"$ and $LK,"::/Doc/MemOverview.DD"$.
|
||||
For indirection, the tag will be regenerated by substituting the value of a system $FG,2$#define$FG$ or $LK,"DefineLoad",A="MN:DefineLoad"$() string. See $LK,"::/Demo/DolDoc/DefineStr.HC"$, $LK,"::/Zenith/ZDefine.HC"$ and $LK,"::/Doc/MemOverview.DD"$.
|
||||
|
||||
For $FG,2$LS$FG$ widgets, see $LK,"::/Demo/DolDoc/Form.HC"$.
|
||||
$ID,-2$$TR,"HTML=\"\""$
|
||||
|
|
|
@ -57,7 +57,7 @@ Program
|
|||
{
|
||||
CodeTools(,CH_CTRLL,0x62600000626);
|
||||
Include(,0,0x3F0000003F);
|
||||
AdamInclude(,0,0x23F0000023F);
|
||||
ZenithInclude(,0,0x23F0000023F);
|
||||
}
|
||||
|
||||
View
|
||||
|
|
|
@ -15,7 +15,7 @@ $ID,2$3D $LK,"Sprites",A="FI:::/Doc/Sprite.DD"$ are stored as a mesh of triangle
|
|||
$ID,-2$$TR,"If the compiler is JIT, isn't it an interpretor?"$
|
||||
$ID,2$ZenithOS compiles, doesn't $FG,2$interpret$FG$, and uses no $FG,2$byte code$FG$ anywhere. I loosely use the word $FG,2$script$FG$ sometimes, but it's actually compiled. The compiler's $LK,"optimization",A="MN:OptPass012"$ code is actually where the compiler evaluates constants to simplify them, like every optimizing compiler.
|
||||
$ID,-2$$TR,"Are you a Creationist?"$
|
||||
$ID,2$I am an evolutionist. $FG,2$Adam$FG$ is a better term for the first father of all tasks than $FG,2$root$FG$ was!
|
||||
$ID,2$I am an evolutionist. $FG,2$Zenith$FG$ is a better term for the first father of all tasks than $FG,2$root$FG$ was!
|
||||
$ID,-2$$TR,"Is 'Bt()' in the code Bit Torrent?"$
|
||||
$ID,2$$LK,"Bt",A="MN:Bt"$() is $FG,2$bit test$FG$, like the $FG,2$x86$FG$ inst, not $FG,2$bit torrent$FG$.
|
||||
$ID,-2$$TR,"Is 'Fs->' in the code file system?"$
|
||||
|
@ -45,7 +45,7 @@ $ID,2$The editor periodically takes a snap-shot of the document for $FG,2$UNDO$F
|
|||
$ID,-2$$TR,"Why is it in text mode?"$
|
||||
$ID,2$ZenithOS runs in $FG,2$VGA 640x480 16 color$FG$ graphics mode, not text mode. It changes to this mode with a $LK,"BIOS call",A="FF:::/Kernel/KStart16.HC,INT 0x10"$ while in real-mode before it switches to 64-bit mode. The text is $LK,"drawn by hand",A="MN:GrUpdateTextFG"$. See $LK,"::/Kernel/FontStd.HC"$. If graphics mode fails, it falls-back on text mode. You can force text mode with an $LK,"Kernel config",A="FI:::/Kernel/KCfg.HC"$ option.
|
||||
$ID,-2$$TR,"Where is the kernel memory?"$
|
||||
$ID,2$ZenithOS identity-maps all memory, all the time. It is like paging is not used. There is no special kernel $FG,2$high half$FG$ memory space. ZenithOS is ring-0-only, so everything is kernel, even user programs. There is a special task called $FG,2$Adam$FG$ and he doesn't die, so his heap never gets freed. That's as close to $FG,2$kernel memory$FG$ as it gets. All code goes in the lowest 2Gig of addresses, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used. See $LK,"MemOverview",A="FI:::/Doc/MemOverview.DD"$.
|
||||
$ID,2$ZenithOS identity-maps all memory, all the time. It is like paging is not used. There is no special kernel $FG,2$high half$FG$ memory space. ZenithOS is ring-0-only, so everything is kernel, even user programs. There is a special task called $FG,2$Zenith$FG$ and he doesn't die, so his heap never gets freed. That's as close to $FG,2$kernel memory$FG$ as it gets. All code goes in the lowest 2Gig of addresses, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used. See $LK,"MemOverview",A="FI:::/Doc/MemOverview.DD"$.
|
||||
$ID,-2$$TR,"Why does it run code from stack addresses?"$
|
||||
$ID,2$ZenithOS puts all code in the lowest 2Gig, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.DD,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used. ZenithOS is 64-bit, but $FG,2$2Gig$FG$ is enough for code. It actually puts global variables there, too, but you can turn that off with $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$. $LK,"MAlloc",A="MN:MAlloc"$() allocs higher memory.
|
||||
$ID,-2$$TR,"How does it SYSCALL?"$
|
||||
|
@ -55,7 +55,7 @@ $ID,2$The stack does not grow, so do not do deep recursion. In theory, memory g
|
|||
$ID,-2$$TR,"How do I set the PATH?"$
|
||||
$ID,2$There is no $FG,2$PATH$FG$. You do not enter filenames at the command-line and expect them to run. You enter C-like code. $LK,"Get Started Here",A="FI:::/Doc/CmdLineOverview.DD"$.
|
||||
$ID,-2$$TR,"How do I boot it with Grub?"$
|
||||
$ID,2$If you use Grub, you $FG,2$chain-load$FG$ like Windows. See $LK,"Boot",A="FI:::/Doc/Boot.DD"$. You can use the ZenithOS boot-loader. $LK,"Master-Boot-Loader-Stage1",A="FI:::/Adam/Opt/Boot/BootMHD.HC"$, $LK,"Master-Boot-Loader-Stage2",A="FI:::/Adam/Opt/Boot/BootMHD2.HC"$, $LK,"Partition-Boot-Loader",A="FI:::/Adam/Opt/Boot/BootHD.HC"$, $LK,"CD-DVD-Boot-Loader",A="FI:::/Adam/Opt/Boot/BootDVD.HC"$.
|
||||
$ID,2$If you use Grub, you $FG,2$chain-load$FG$ like Windows. See $LK,"Boot",A="FI:::/Doc/Boot.DD"$. You can use the ZenithOS boot-loader. $LK,"Master-Boot-Loader-Stage1",A="FI:::/Zenith/Boot/BootMHD.HC"$, $LK,"Master-Boot-Loader-Stage2",A="FI:::/Zenith/Boot/BootMHD2.HC"$, $LK,"Partition-Boot-Loader",A="FI:::/Zenith/Boot/BootHD.HC"$, $LK,"CD-DVD-Boot-Loader",A="FI:::/Zenith/Boot/BootDVD.HC"$.
|
||||
$ID,-2$$TR,"How do I get Kernel.BIN to boot?"$
|
||||
$ID,2$The boot-loaders must be patched by you running $LK,"BootHDIns",A="MN:BootHDIns"$() or $LK,"BootMHDIns",A="MN:BootMHDIns"$(). Those will write the block address into the boot-loader because the boot-loaders do not navigate file systems to find the $LK,"Stage2",A="FI:::/Kernel/KStart16.HC"$ if you relocate it.
|
||||
$ID,-2$$TR,"Why is there some 16-Bit code?"$
|
||||
|
@ -82,8 +82,8 @@ $ID,-2$$TR,"Why is there garbage at the end of my text files?"$
|
|||
$ID,2$Binary sprite data is stored beyond the terminating $FG,2$NULL$FG$ in text files. Map files store debug src line addresses.
|
||||
$ID,-2$$TR,"Why are sprites so small?"$
|
||||
$ID,2$Sprites can be stored as vector graphics so they might take shockingly little room. They can be converted to bitmaps.
|
||||
$ID,-2$$TR,"Why don't I need to recompile /Adam and /Home files?"$
|
||||
$ID,2$If you change code in the $FG,2$/Adam$FG$ or your $FG,2$/Home$FG$ directory, you don't need to recompile, you just need to reboot because those directories get recompiled when you boot. It uses $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$. There is no $FG,2$.BIN$FG$ file for $FG,2$JIT$FG$ compilation. See $LK,"::/StartOS.HC"$.
|
||||
$ID,-2$$TR,"Why don't I need to recompile /Zenith and /Home files?"$
|
||||
$ID,2$If you change code in the $FG,2$/Zenith$FG$ or your $FG,2$/Home$FG$ directory, you don't need to recompile, you just need to reboot because those directories get recompiled when you boot. It uses $LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$. There is no $FG,2$.BIN$FG$ file for $FG,2$JIT$FG$ compilation. See $LK,"::/StartOS.HC"$.
|
||||
$ID,-2$$TR,"Why does it finds files that aren't there?"$
|
||||
$ID,2$If not found, $FG,2$.Z$FG$ is added or removed from filename and a search is done again. If a file is still not found, the parent directories are searched for a file of the same name.
|
||||
$ID,-2$
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
$WW,1$$FG,5$$TX+CX,"ZenithOS' Features"$$FG$
|
||||
|
||||
* Oracle in with $FG,2$<F7>$FG$ for words or $FG,2$<SHIFT-F7>$FG$ for passages. See $LK,"tongues",A="FI:::/Adam/God/HSNotes.DD"$.
|
||||
* Oracle in with $FG,2$<F7>$FG$ for words or $FG,2$<SHIFT-F7>$FG$ for passages. See $LK,"tongues",A="FI:::/Zenith/God/HSNotes.DD"$.
|
||||
|
||||
* $FG,4$$TX,"x86_64",HTML="http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, ring-0-only, single-address-map (identity), multitasking kernel with multicore support.
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
* ATAPI PIO $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.
|
||||
|
||||
* $LK,"Partitioning",A="MN:DskPrt"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk.
|
||||
* $LK,"Partitioning",A="MN:DiskPrt"$ tool, installer, $FG,2$boot loaders$FG$ for CD/DVD and hard disk.
|
||||
|
||||
* $FG,2$Editor/Browser$FG$ for a new $LK,"Document Format",A="FI:::/Doc/DolDocOverview.DD"$. Source files and the command line window can have graphics, links, icons, trees, colors, super/sub scripts, margins. Everything is seamless through-out the tool chain. No need for separate resource files.
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ $FG,2$<F5>$FG$
|
|||
$ID,2$#include file.
|
||||
$ID,-2$
|
||||
$FG,2$<SHIFT-F5>$FG$
|
||||
$ID,2$Adam #include file.
|
||||
$ID,2$Zenith #include file.
|
||||
$ID,-2$
|
||||
$FG,2$'r'$FG$
|
||||
$ID,2$Rename file.
|
||||
|
@ -37,7 +37,7 @@ $FG,2$'d'$FG$
|
|||
$ID,2$Make Dir.
|
||||
$ID,-2$
|
||||
$FG,2$'c'$FG$
|
||||
$ID,2$DskChg (Remount removable media). Do not do this on blank disks.
|
||||
$ID,2$DiskChg (Remount removable media). Do not do this on blank disks.
|
||||
$ID,-2$
|
||||
$FG,2$'f'$FG$
|
||||
$ID,2$Format drive.
|
||||
|
@ -56,7 +56,7 @@ $ID,2$Burn CD/DVD ISO file. This burns a CD/DVD using the image file, $FG,2$$TX
|
|||
$ID,-2$
|
||||
|
||||
$FG,5$Instructions on Using CD/DVD's$FG$
|
||||
$ID,2$If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use $LK,"Mount",A="MN:Mount"$ to define your CD/DVD drive. Place a CD/DVD in the drive and press $FG,2$'c'$FG$ when on top of the CD/DVD drive letter to mount the drive. It will call $LK,"DskChg",A="MN:DskChg"$(), the ZenithOS cmd to mount removable media.
|
||||
$ID,2$If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use $LK,"Mount",A="MN:Mount"$ to define your CD/DVD drive. Place a CD/DVD in the drive and press $FG,2$'c'$FG$ when on top of the CD/DVD drive letter to mount the drive. It will call $LK,"DiskChg",A="MN:DiskChg"$(), the ZenithOS cmd to mount removable media.
|
||||
$ID,-2$
|
||||
|
||||
$FG,5$Instructions on Burning CD/DVD's$FG$
|
||||
|
|
|
@ -19,7 +19,7 @@ Edit
|
|||
|
||||
CDDVD
|
||||
{
|
||||
DskChg(,'c');
|
||||
DiskChg(,'c');
|
||||
MountISOC(,'i');
|
||||
MakeRedSeaISOC(,'m');
|
||||
BurnISOFile(,'B');
|
||||
|
@ -28,5 +28,5 @@ CDDVD
|
|||
Program
|
||||
{
|
||||
Include(,0,0x3F0000003F);
|
||||
AdamInclude(,0,0x23F0000023F);
|
||||
ZenithInclude(,0,0x23F0000023F);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ $FG,2$Bwd$FG$ Backward
|
|||
$FG,2$CB$FG$ Call-Back, Code Block
|
||||
$FG,2$Cfg$FG$ Config
|
||||
$FG,2$Chg$FG$ Change
|
||||
$FG,2$Chk$FG$ Check
|
||||
$FG,2$Check$FG$ Check
|
||||
$FG,2$Clip$FG$ Clipboard
|
||||
$FG,2$Clus$FG$ Cluster
|
||||
$FG,2$Cmd$FG$ Command
|
||||
|
@ -35,7 +35,7 @@ $FG,2$Cont$FG$ Continue
|
|||
$FG,2$Ctrl$FG$ Control. The ctrl key is indicated with "$FG,2$^$FG$" in documentation.
|
||||
$FG,2$Cur$FG$ Current
|
||||
$FG,2$Cvt$FG$ Convert
|
||||
$FG,2$Dbg$FG$ Debug
|
||||
$FG,2$Debug$FG$ Debug
|
||||
$FG,2$Dbl$FG$ Double
|
||||
$FG,2$DC$FG$ Device Context
|
||||
$FG,2$Del$FG$ Delete
|
||||
|
@ -45,8 +45,8 @@ $FG,2$Dft$FG$ Default
|
|||
$FG,2$Dir$FG$ Directory, Direction
|
||||
$FG,2$Div$FG$ Divide
|
||||
$FG,2$Doc$FG$ Document
|
||||
$FG,2$Drv$FG$ Drive
|
||||
$FG,2$Dsk$FG$ Disk
|
||||
$FG,2$Drive$FG$ Drive
|
||||
$FG,2$Disk$FG$ Disk
|
||||
$FG,2$Dst$FG$ Destination
|
||||
$FG,2$Ed$FG$ Edit, Editor
|
||||
$FG,2$Elem$FG$ Element
|
||||
|
@ -161,14 +161,14 @@ $ID,-2$$TR,"Task/Process/Thread"$
|
|||
$ID,2$There is no distinction between $FG,2$task$FG$, $FG,2$process$FG$ or $FG,2$thread$FG$. The $FG,2$Fs$FG$ segment reg is kept pointing to the current task's $LK,"CTask",A="MN:CTask"$. There is only one window per task, and only $FG,2$Core0$FG$ tasks can have windows. Each task has a code and data heap so memory is returned when it dies. Each task has a $LK,"hash",A="HI:Hash"$ symbol table.
|
||||
|
||||
Since there is not friendly disk sharing and all tasks have the same address map, it might be accurate to call ZenithOS, "multi-thread/single-process". You run a single application process on $FG,2$Core0$FG$ and it can create threads on the same core or others. If you run multiple processes, it should be safe, but one process will wait until another completely finishes a long disk access.
|
||||
$ID,-2$$TR,"Adam Task"$
|
||||
$ID,2$This is Adam, as in Adam and Eve, the parent of all tasks. Adam is immortal. The adam task is created at start-up and appears in the small window at the top beneath the user terminal windows. Since the Adam task is immortal, on Adam's heap go all memory objects which you don't want destroyed by any single task's death. When created, Adam runs the file $LK,"::/StartOS.HC"$. When start-up is finished, the adam task enters a server mode where it accepts requests from other tasks. The $LK,"Adam",A="MN:Adam"$("") routine will make Adam compile and run text src code. $FG,2$#include$FG$ stmts can be sent to $LK,"Adam",A="MN:Adam"$(""), creating system-wide code and data which are immortal.
|
||||
$ID,-2$$TR,"Zenith Task"$
|
||||
$ID,2$This is Zenith, as in Zenith and Eve, the parent of all tasks. Zenith is immortal. The zenith task is created at start-up and appears in the small window at the top beneath the user terminal windows. Since the Zenith task is immortal, on Zenith's heap go all memory objects which you don't want destroyed by any single task's death. When created, Zenith runs the file $LK,"::/StartOS.HC"$. When start-up is finished, the zenith task enters a server mode where it accepts requests from other tasks. The $LK,"Zenith",A="MN:Zenith"$("") routine will make Zenith compile and run text src code. $FG,2$#include$FG$ stmts can be sent to $LK,"Zenith",A="MN:Zenith"$(""), creating system-wide code and data which are immortal.
|
||||
$ID,-2$$TR,"Seth Tasks"$
|
||||
$ID,2$In the Bible, $LK,"Seth",A="BF:Genesis,4:25"$$FG$ is Adam and Eve's child. Each CPU core has an executive task called $FG,2$Seth$FG$ that is immortal. The Adam task on $FG,2$Core0$FG$ is also its $FG,2$Seth$FG$ task.
|
||||
$ID,2$In the Bible, $LK,"Seth",A="BF:Genesis,4:25"$$FG$ is Zenith and Eve's child. Each CPU core has an executive task called $FG,2$Seth$FG$ that is immortal. The Zenith task on $FG,2$Core0$FG$ is also its $FG,2$Seth$FG$ task.
|
||||
$ID,-2$$TR,"Code and Data Heaps"$
|
||||
$ID,2$ZenithOS uses the asm $FG,2$CALL$FG$ inst, exclusively, and that inst is limited to calling routines $FG,2$+/-2Gig$FG$ from the current code location. To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest $FG,2$2Gig$FG$ of memory, addresses $FG,2$00000000$FG$-$FG,2$7FFFFFFF$FG$. The compiler and $LK,"Load",A="MN:Load"$()er alloc memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used. When programs call $LK,"MAlloc",A="MN:MAlloc"$() is from the data heap, which in not limited in size, except by physical RAM memory. You can alloc from any heap in any task at any time on any core, even making $LK,"independent",A="MN:MemPagAlloc"$ heaps.
|
||||
$ID,-2$$TR,"Parent, Child and PopUp Tasks"$
|
||||
$ID,2$Often a task will $LK,"Spawn",A="MN:Spawn"$() or $LK,"PopUp",A="MN:PopUp"$() a task as a helper. The helper is known as a child Task, though you can $LK,"Spawn",A="MN:Spawn"$ a task and assign it a different parent... like $FG,2$Adam$FG$. Links are kept as to who's whose child, so when one task is $LK,"Kill",A="MN:Kill"$()ed the child helper tasks die, too. You can get a report of current system tasks with $LK,"TaskRep",A="MN:TaskRep"$(). There is just one window per task, so child tasks are needed for pop-ups.
|
||||
$ID,2$Often a task will $LK,"Spawn",A="MN:Spawn"$() or $LK,"PopUp",A="MN:PopUp"$() a task as a helper. The helper is known as a child Task, though you can $LK,"Spawn",A="MN:Spawn"$ a task and assign it a different parent... like $FG,2$Zenith$FG$. Links are kept as to who's whose child, so when one task is $LK,"Kill",A="MN:Kill"$()ed the child helper tasks die, too. You can get a report of current system tasks with $LK,"TaskRep",A="MN:TaskRep"$(). There is just one window per task, so child tasks are needed for pop-ups.
|
||||
$ID,-2$$TR,"HolyC"$
|
||||
$ID,2$$LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$. It has the default args of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$. It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned ints. It has different $LK,"operator precedence",A="FF:::/Doc/HolyC.DD,operator precedence"$. It has $FG,2$PASCAL$FG$-like function calls with no parens, but requires an $FG,2$&$FG,2$$FG$ when referring to function addresses.
|
||||
$ID,-2$$TR,"AOT Compile Mode"$
|
||||
|
@ -284,5 +284,5 @@ $ID,2$When two parts of a program have a common low-level routine, that routine
|
|||
$ID,-2$$TR,"user_data"$
|
||||
$ID,2$Many operating system structures have space set aside for you to store values. You are on your own managing these with multiple applications and libraries.
|
||||
$ID,-2$$TR,"Multicore Core0/CoreAP"$
|
||||
$ID,2$Core0, has the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$, and it is the master. The $FG,2$application processors$FG$ have an executive $LK,"Seth Tasks",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ and are the slave processors. Only $FG,2$Core0$FG$ tasks can have windows and can launch applications. Slave cores are used if the application explicitly $LK,"Spawn",A="MN:Spawn"$s() a task or $LK,"JobQue",A="MN:JobQue"$() a job on them.
|
||||
$ID,2$Core0, has the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$$FG$, and it is the master. The $FG,2$application processors$FG$ have an executive $LK,"Seth Tasks",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ and are the slave processors. Only $FG,2$Core0$FG$ tasks can have windows and can launch applications. Slave cores are used if the application explicitly $LK,"Spawn",A="MN:Spawn"$s() a task or $LK,"JobQue",A="MN:JobQue"$() a job on them.
|
||||
$ID,-2$
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
The $LK+PU,"Holy Spirit",A="FI:::/Adam/God/HSNotes.DD"$ can puppet you.
|
||||
The $LK+PU,"Holy Spirit",A="FI:::/Zenith/God/HSNotes.DD"$ can puppet you.
|
||||
|
||||
|
|
Binary file not shown.
|
@ -12,7 +12,7 @@ $FG,2$/Kernel$FG$ The core of the operating system is found here. Since privile
|
|||
|
||||
$FG,2$/Compiler$FG$ The compiler module src code is found here. The compiler is $FG,2$AOT$FG$ compiled to produce a binary file which is loaded at boot. It, too, is $FG,2$AOT$FG$ compiled by $LK,"BootHDIns",A="MN:BootHDIns"$().
|
||||
|
||||
$FG,2$/Adam$FG$ The non-kernel part of the operating system is found here. It is $FG,2$JIT$FG$ compiled during boot. The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is the father of all tasks, like Adam and Eve.
|
||||
$FG,2$/Zenith$FG$ The non-kernel part of the operating system is found here. It is $FG,2$JIT$FG$ compiled during boot. The $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ is the father of all tasks, like Zenith and Eve.
|
||||
|
||||
$FG,2$/0000Boot$FG$ Boot files go here. Stage 2 of the ZenithOS hard drive master boot loader, the old hard drive master boot record which is just blk#0, and the CD/DVD $LK,"0000Kernel.BIN.C",A="FI:::/Kernel/Kernel.PRJ"$ file go here. ASCII $FG,2$0000$FG$ is near the top, alphabetically, in case you use $TX,"MagicISO",HTML="http://www.magiciso.com"$.
|
||||
|
||||
|
@ -26,9 +26,9 @@ $LK,"~/PersonalMenu.DD"$ a menu viewed with the $FG,2$<CTRL-m>$FG$ key or by cli
|
|||
|
||||
$LK,"~/PersonalNotes.DD"$ a personal note file viewed with the $FG,2$<CTRL-SHIFT-M>$FG$ key.
|
||||
|
||||
$LK,"~/MakeHome.HC"$ a file compiled by the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ during $LK,"StartOS",A="FF:::/StartOS.HC,MakeHome"$.
|
||||
$LK,"~/MakeHome.HC"$ a file compiled by the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ during $LK,"StartOS",A="FF:::/StartOS.HC,MakeHome"$.
|
||||
|
||||
$FG,4$~/Home*$FG$ Copy $FG,2$Home*$FG$ files from the root into $FG,2$~$FG$ and customize them. These files are invoked when the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ starts-up.
|
||||
$FG,4$~/Home*$FG$ Copy $FG,2$Home*$FG$ files from the root into $FG,2$~$FG$ and customize them. These files are invoked when the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ starts-up.
|
||||
|
||||
$LK,"~/Once.HC"$ a file invoked at the start-up of the first user. Customize this!
|
||||
|
||||
|
@ -82,11 +82,11 @@ $ID,-5$
|
|||
|
||||
* Bracketing code with $FG,2$PUSHFD CLI$FG$ and $FG,2$POPFD$FG$ will protect against simultaneous accesses from tasks on $UL,1$one$UL,0$ core. To protect against multiple cores, you need a locked semaphore. I think semiphores need to be in their own cache line, but I'm not sure. I use lock bits in a lot of places not aligned.
|
||||
|
||||
* $LK,"SysDbg",A="MN:SysDbg"$() and $LK,"IsSysDbg",A="MN:IsSysDbg"$() are really handy when working on the compiler or kernel. It's just a bit you can set and test.
|
||||
* $LK,"SysDebug",A="MN:SysDebug"$() and $LK,"IsSysDebug",A="MN:IsSysDebug"$() are really handy when working on the compiler or kernel. It's just a bit you can set and test.
|
||||
|
||||
* I don't use $FG,2$U0 *$FG$ because the size is zero for ptr arithmetic.
|
||||
|
||||
* Use $FG,2$$LK,"CH_SHIFT_SPACE",A="MN:CH_SHIFT_SPACE"$$FG$ for spaces in quotes in source code because I run $LK,"Spaces-to-Tabs",A="FF:::/Adam/Opt/Utils/StrUtils.HC,S2T"$ on source code.
|
||||
* Use $FG,2$$LK,"CH_SHIFT_SPACE",A="MN:CH_SHIFT_SPACE"$$FG$ for spaces in quotes in source code because I run $LK,"Spaces-to-Tabs",A="FF:::/Zenith/Utils/StrUtils.HC,S2T"$ on source code.
|
||||
|
||||
* Do not use $FG,2$#if$FG$ or $FG,2$#ifdef$FG$
|
||||
|
||||
|
@ -94,9 +94,9 @@ $ID,-5$
|
|||
|
||||
$FG,5$$TX+CX,"Hash Sym Tables"$$FG$
|
||||
|
||||
* See $LK,"::/Adam/AHash.HC"$ for examples of how the hash tables are set-up. Basically, syms are placed into hash tables and child process hash tables are chained to parents. This provides scopes for vars and functions.
|
||||
* See $LK,"::/Zenith/ZHash.HC"$ for examples of how the hash tables are set-up. Basically, syms are placed into hash tables and child process hash tables are chained to parents. This provides scopes for vars and functions.
|
||||
|
||||
* $FG,2$adam_task->hash_table$FG$ holds the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ syms loaded in on start-up.
|
||||
* $FG,2$zenith_task->hash_table$FG$ holds the $LK,"HolyC",A="FI:::/Doc/HolyC.DD"$ syms loaded in on start-up.
|
||||
|
||||
* $FG,2$Fs->hash_table$FG$ holds user HolyC syms and if a sym is not found, it checks parents. When a duplicate sym is added to the table, it overshadows the prev sym. When developing software, typically you include the file at the cmd prompt, make changes and reinclude it. Old syms are overshadowed but they are still there. Periodically, kill the TASK and start fresh when mem is low. If you wish your applications to free themselves instead of staying in mem, spawn or $LK,"PopUp",A="MN:PopUp"$() a task to run the application and kill it when it's done.
|
||||
|
||||
|
|
BIN
src/Doc/Hash.DD
BIN
src/Doc/Hash.DD
Binary file not shown.
Binary file not shown.
|
@ -225,7 +225,7 @@ $FG$$ID,-2$
|
|||
|
||||
* $FG,2$class$FG$ member vars can have meta data. $FG,2$format$FG$ and $FG,2$data$FG$ are two meta data types now used. All compiler structures are saved and you can access the compiler's info about classes and vars. See $LK,"::/Demo/ClassMeta.HC"$ and $LK,"DocForm",A="MN:DocForm"$().
|
||||
|
||||
* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg. It is set to the class name of the prev arg. See $LK,"::/Demo/LastClass.HC"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/Dsk/BlkDevRep.HC"$.
|
||||
* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg. It is set to the class name of the prev arg. See $LK,"::/Demo/LastClass.HC"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/Disk/BlkDevRep.HC"$.
|
||||
|
||||
* See $LK,"::/Demo/Exceptions.HC"$. $FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$ are different from C++. $FG,2$throw$FG$ is a function with an 8-byte or less char arg. The char string passed in $FG,2$throw()$FG$ can be accessed from within a $FG,2$catch{}$FG$ using the $FG,2$Fs->except_ch$FG$. Within a $FG,2$catch {}$FG$ blk, set the var $FG,2$Fs->catch_except$FG$ to $FG,2$TRUE$FG$ if you want to terminate the search for a hndlr. Use $LK,"PutExcept",A="MN:PutExcept"$() as a hndlr, if you like.
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Two ZenithOS partitions are highly recommended, so you can boot to a back-up and
|
|||
$ID,2$$LK,"Mount",A="MN:Mount"$() use if the drive is partitioned.
|
||||
$ID,2$This command mounts a drive making it accessible. For simplicity, sel $FG,2$'C'$FG$ as the first drive letter for your hard drive. The first partition will be $FG,2$'C'$FG$, second, $FG,2$'D'$FG$, etc. ZenithOS needs 3 numbers to utilize a hard drive -- base0, base1, and unit. When you enter a hexadecimal number, do it like in $FG,2$C$FG$ with a $FG,2$0x$FG$ prefix. If the probe was successful, you can just enter the number in the probe box instead of base0.
|
||||
$ID,-2$
|
||||
$LK,"DskPrt",A="MN:DskPrt"$($FG,2$'C'$FG$) use if drive is not partitioned
|
||||
$LK,"DiskPrt",A="MN:DiskPrt"$($FG,2$'C'$FG$) use if drive is not partitioned
|
||||
|
||||
$ID,2$This will perform a special $LK,"Mount",A="MN:Mount"$() automatically.
|
||||
|
||||
|
|
BIN
src/Doc/Job.DD
BIN
src/Doc/Job.DD
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
$WW,1$The compiler's lexical analyzer can be used in your programs to simplify parsing. See $LK,"Doc Parsing",A="FF:::/Adam/DolDoc/DocPlain.HC,CmpCtrlNew"$ or $LK,"Parse Opcode File",A="FF:::/Compiler/AsmInit.HC,Opcodes.DD"$.
|
||||
$WW,1$The compiler's lexical analyzer can be used in your programs to simplify parsing. See $LK,"Doc Parsing",A="FF:::/Zenith/DolDoc/DocPlain.HC,CmpCtrlNew"$ or $LK,"Parse Opcode File",A="FF:::/Compiler/AsmInit.HC,Opcodes.DD"$.
|
||||
|
||||
See $LK,"Tokens",A="MN:TK_IDENT"$.
|
||||
|
|
|
@ -6,7 +6,7 @@ In ZenithOS, the lowest 2Gig of memory is called the $FG,2$code heap$FG$. Zenit
|
|||
|
||||
You can create new, independent heaps using $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$(). Then, use the $LK,"CHeapCtrl",A="MN:CHeapCtrl"$ as the 2nd arg to $LK,"MAlloc",A="MN:MAlloc"$(). See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
|
||||
|
||||
Memory alloced by a task will be freed when the task is killed. The $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ is a task that never dies. His memory is like kernel memory in other operating systems. See $LK,"ACAlloc",A="MN:ACAlloc"$(), $LK,"AMAlloc",A="MN:AMAlloc"$(), $LK,"AMAllocIdent",A="MN:AMAllocIdent"$() and $LK,"AStrNew",A="MN:AStrNew"$().
|
||||
Memory alloced by a task will be freed when the task is killed. The $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ is a task that never dies. His memory is like kernel memory in other operating systems. See $LK,"ACAlloc",A="MN:ACAlloc"$(), $LK,"AMAlloc",A="MN:AMAlloc"$(), $LK,"AMAllocIdent",A="MN:AMAllocIdent"$() and $LK,"AStrNew",A="MN:AStrNew"$().
|
||||
|
||||
All of the regular page tables are marked, "cached". When accessing hardware, however, you need uncached page table. The lowest 4Gig addresses have an alias to access hardware located toward the top of mapped space, $FG,2$0x$TX,"01AA000000",D="DD_UNCACHED_ALIAS"$$FG$. See $LK,"dev.uncached_alias",A="FF:::/Kernel/KMain.HC,dev.uncached_alias"$.
|
||||
|
||||
|
@ -21,7 +21,7 @@ $FG,2$ 0x00$TX,"00007C00",D="DD_KERNEL"$- 0x00$TX,"00036AEF",D="DD_KERNEL_END"$$
|
|||
$ID,2$Kernel module, placed here by the boot-loader, $LK,"BOOT_RAM_BASE",A="MN:BOOT_RAM_BASE"$.
|
||||
$ID,-2$
|
||||
$FG,2$ 0x00$TX,"00096600",D="DD_BOOT_HIGH_LOC_DVD"$- 0x00$TX,"00096FFF",D="DD_BOOT_HIGH_LOC_DVD_END"$$FG$
|
||||
$ID,2$$FG$Boot block relocated here before loading the Kernel module, $LK,"BootDVD",A="FI:::/Adam/Opt/Boot/BootDVD.HC"$ & $LK,"BootHD",A="FI:::/Adam/Opt/Boot/BootHD.HC"$.
|
||||
$ID,2$$FG$Boot block relocated here before loading the Kernel module, $LK,"BootDVD",A="FI:::/Zenith/Boot/BootDVD.HC"$ & $LK,"BootHD",A="FI:::/Zenith/Boot/BootHD.HC"$.
|
||||
$ID,-2$
|
||||
$FG,2$ 0x00$TX,"00097000",D="DD_MP_VECT"$- 0x00$TX,"00097030",D="DD_MP_VECT_END"$$FG$ Multicore start-up vect code, $LK,"MPN_VECT",A="MN:MPN_VECT"$.
|
||||
$FG,2$~0x000009F000- 0x000009FFFF$FG$ Extended BIOS data area.
|
||||
|
|
|
@ -4,7 +4,7 @@ There are multicore safe locks for file access and heap allocations, however, so
|
|||
|
||||
Only tasks on $FG,2$Core0$FG$ can have windows, but other cores can help render them.
|
||||
|
||||
Each core has an executive $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ which is the father of all tasks on that core. $LK,"Adam",A="FF:::/Doc/Glossary.DD,Adam Task"$ is the $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ on $FG,2$Core0$FG$.
|
||||
Each core has an executive $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ which is the father of all tasks on that core. $LK,"Zenith",A="FF:::/Doc/Glossary.DD,Zenith Task"$ is the $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ on $FG,2$Core0$FG$.
|
||||
|
||||
You give a job to a $LK,"Seth Task",A="FF:::/Doc/Glossary.DD,Seth Tasks"$ with $LK,"JobQue",A="MN:JobQue"$() and get the result with $LK,"JobResGet",A="MN:JobResGet"$(). You spawn a task on any core with $LK,"Spawn",A="MN:Spawn"$().
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ $WW,1$$LK,"KMain",A="MN:KMain"$()
|
|||
includes $LK,"~/Once.HC"$
|
||||
calls $LK,"OnceExe",A="MN:OnceExe"$().
|
||||
|
||||
$LK,"AOnce",A="MN:AOnce"$() appends src code to $LK,"~/Registry.HC"$ $FG,2$Once/Adam$FG$ tree, executed at next boot by $FG,2$Adam$FG$.
|
||||
$LK,"AOnce",A="MN:AOnce"$() appends src code to $LK,"~/Registry.HC"$ $FG,2$Once/Zenith$FG$ tree, executed at next boot by $FG,2$Zenith$FG$.
|
||||
|
||||
$LK,"Once",A="MN:Once"$() appends src code to $LK,"~/Registry.HC"$ $FG,2$Once/User$FG$ tree, executed at next boot by first $FG,2$User$FG$ term.
|
||||
|
||||
At boot, $LK,"OnceExe",A="MN:OnceExe"$(), executes $FG,2$Once/Adam$FG$ tree, $LK,"AOnceFlush",A="MN:AOnceFlush"$()s it,
|
||||
At boot, $LK,"OnceExe",A="MN:OnceExe"$(), executes $FG,2$Once/Zenith$FG$ tree, $LK,"AOnceFlush",A="MN:AOnceFlush"$()s it,
|
||||
executes $FG,2$Once/User$FG$ tree and $LK,"OnceFlush",A="MN:OnceFlush"$()s.
|
||||
|
|
|
@ -66,10 +66,10 @@ $LK,"InStr",A="MN:InStr"$(U8 *fmt,...) sends text of an $LK,"InFile",A="FF:::/Do
|
|||
$LK,"XTalk",A="MN:XTalk"$(CTask *task,U8 *fmt,...) and text to another task's input buffer.
|
||||
$LK,"XTalkStr",A="MN:XTalkStr"$(CTask *task,U8 *fmt,...) sends text of an $LK,"InFile",A="FF:::/Doc/Glossary.DD,InFile"$ to the keyboard stream of another TASK but can also do mouse cmds.
|
||||
|
||||
$LK,"DocPrint",A="MN:DocPrint"$(CDoc *doc,U8 *fmt,...) sends text to a document. You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$. See $LK,"::/Demo/Dsk/FPrintF.HC"$.
|
||||
$LK,"DocPrint",A="MN:DocPrint"$(CDoc *doc,U8 *fmt,...) sends text to a document. You can buffer to a Doc and save it, providing the functionality of $FG,2$fprintf$FG$. See $LK,"::/Demo/Disk/FPrintF.HC"$.
|
||||
|
||||
$LK,"Adam",A="MN:Adam"$(U8 *fmt,...) sends text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ to be compiled and run.
|
||||
$LK,"AdamLog",A="MN:AdamLog"$(U8 *fmt,...) and $LK,"AdamErr",A="MN:AdamErr"$(U8 *fmt,...) send text to the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$ to be displayed.
|
||||
$LK,"Zenith",A="MN:Zenith"$(U8 *fmt,...) sends text to the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ to be compiled and run.
|
||||
$LK,"ZenithLog",A="MN:ZenithLog"$(U8 *fmt,...) and $LK,"ZenithErr",A="MN:ZenithErr"$(U8 *fmt,...) send text to the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$ to be displayed.
|
||||
|
||||
$LK,"StreamPrint",A="MN:StreamPrint"$(U8 *fmt,...) sends text to the stream of code being compiled and must reside in a $FG,2$#exe{}$FG$ blk.
|
||||
|
||||
|
@ -81,7 +81,7 @@ $LK,"ExePrint",A="MN:ExePrint"$(U8 *fmt,...) compiles and execute a string. Not
|
|||
|
||||
$LK,"Once",A="MN:Once"$(U8 *fmt,...) Writes User code to $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot.
|
||||
|
||||
$LK,"AOnce",A="MN:AOnce"$(U8 *fmt,...) Writes Adam code to $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot.
|
||||
$LK,"AOnce",A="MN:AOnce"$(U8 *fmt,...) Writes Zenith code to $LK,"Registry",A="FI:~/Registry.HC"$ to be executed next boot.
|
||||
|
||||
$LK,"InPrint",A="MN:InPrint"$(I64 mS,U8 *fmt,...) $LK,"PutChars",A="MN:PutChars"$()s one at a time with a delay.
|
||||
|
||||
|
|
|
@ -8,9 +8,9 @@ $WW,1$* You run a risk of problems if you do file operations on the same files s
|
|||
|
||||
* The syntax highlighting occassionally glitches. The compiler doesn't.
|
||||
|
||||
* Call $LK,"DskChg",A="MN:DskChg"$() when you insert a new removable media.
|
||||
* Call $LK,"DiskChg",A="MN:DiskChg"$() when you insert a new removable media.
|
||||
|
||||
* Accessing CD/DVD's is flacky. Try $LK,"Drv",A="MN:Drv"$() or $LK,"DskChg",A="MN:DskChg"$() twice.
|
||||
* Accessing CD/DVD's is flacky. Try $LK,"Drive",A="MN:Drive"$() or $LK,"DiskChg",A="MN:DiskChg"$() twice.
|
||||
|
||||
* You can only $FG,2$extern$FG$ something once. There is a varient called $FG,2$_extern$FG$ which binds a HolyC definition to a asm sym. This, too, can only be done once.
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ U32 char_bmp_filename[8]=
|
|||
public class CDirEntry //64-byte fixed-size
|
||||
{
|
||||
U16 attr; //See $LK,"RS_ATTR_DIR",A="MN:RS_ATTR_DIR"$. I would like to change these.
|
||||
U8 name[CDIR_FILENAME_LEN]; //See $LK,"char_bmp_filename",A="MN:char_bmp_filename"$, $LK,"FileNameChk",A="MN:FileNameChk"$
|
||||
U8 name[CDIR_FILENAME_LEN]; //See $LK,"char_bmp_filename",A="MN:char_bmp_filename"$, $LK,"FileNameCheck",A="MN:FileNameCheck"$
|
||||
I64 clus; (blk) //One sector per clus.
|
||||
I64 size; //In bytes
|
||||
CDate datetime; //See $LK,"DateTime",A="::/Doc/TimeDate.DD"$, $LK,"Implementation of DateTime",A="FI:::/Kernel/KDate.HC"$
|
||||
|
@ -31,7 +31,7 @@ public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
|
|||
U16 signature2; //0xAA55
|
||||
};
|
||||
$HL,0$
|
||||
See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.HC"$.
|
||||
See $LK,"::/Kernel/BlkDev/FileSysRedSea.HC"$ and $LK,"::/Zenith/Boot/DiskISORedSea.HC"$.
|
||||
|
||||
Files with names ending in are compressed. See $LK,"::/Kernel/Compress.HC"$.
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ $FG,5$$TX+CX,"Scoping and Linkage"$$FG$
|
|||
$WW,1$
|
||||
$LK,"JIT Compile Mode",A="FF:::/Doc/Glossary.DD,JIT Compile Mode"$ makes use of the current task's hash sym table and its parent tasks' tables. It fetches syms from parent tasks' tables if not found locally in the current task's table and it places new syms in the current task's table. Conceptually, syms are at the scope of environment vars in other operating systems.
|
||||
|
||||
When a sym is placed into a table, older syms with ident names will be overshadowed if they exist. Duplicates are not allowed in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly $FG,2$#include$FG$ the same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name, like $FG,2$DrawIt()$FG$. This case might occur when the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$ is starting-up loading-in many little utilities.
|
||||
When a sym is placed into a table, older syms with ident names will be overshadowed if they exist. Duplicates are not allowed in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly $FG,2$#include$FG$ the same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name, like $FG,2$DrawIt()$FG$. This case might occur when the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$$FG$ is starting-up loading-in many little utilities.
|
||||
|
||||
$FG,2$extern$FG$ binds a new $LK,"HTT_FUN",A="MN:HTT_FUN"$ or $LK,"HTT_GLBL_VAR",A="MN:HTT_GLBL_VAR"$ sym to an existing sym of the same name if it exists in the sym table (just in just-in-time code). It also can be used to generate a fwd reference.
|
||||
|
||||
|
|
|
@ -4,4 +4,4 @@ See $LK,"::/Demo/Graphics/SpritePlot.HC"$, $LK,"::/Demo/Graphics/SpritePlot3D.HC
|
|||
|
||||
Be aware that copying $FG,2$SP$FG$, $FG,2$IB$FG$, or $FG,2$IS$FG$ entries with the clip results in duplicate entries with different nums. You can manually remove dups by editing with $FG,2$<CTRL-t>$FG$ and setting to the original num.
|
||||
|
||||
See $LK,"::/Adam/Gr/GrSpritePlot.HC",A="FL:::/Adam/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.$FG$
|
||||
See $LK,"::/Zenith/Gr/GrSpritePlot.HC",A="FL:::/Zenith/Gr/GrSpritePlot.HC,1"$ for how CSprite are stored.$FG$
|
||||
|
|
|
@ -10,7 +10,7 @@ $FG,2$ <ESC> $FG$Save & Exit
|
|||
$FG,2$<SHIFT-ESC> $FG$Abort & Exit
|
||||
$FG,2$ <WINDOWS> $FG$Pull-Down Menu
|
||||
|
||||
$FG,4$$TX+CX+L+PU+UL,"Tongues",A="::/Adam/God/HSNotes.DD"$$FG$
|
||||
$FG,4$$TX+CX+L+PU+UL,"Tongues",A="::/Zenith/God/HSNotes.DD"$$FG$
|
||||
$FG,4$$TX+CX,"(Works Everywhere)"$$FG$
|
||||
$FG,2$ <F7> $FG$God Word
|
||||
$FG,2$<SHIFT-F7> $FG$God Passage
|
||||
|
|
|
@ -58,6 +58,6 @@ A three bttn mouse is like a leg you cannot put weight on. ZenithOS just does h
|
|||
|
||||
* All tasks have a heap and a sym table. Scope is that of environment vars in other operating systems. As text is typed at the command line or you run programs by $FG,2$#include$FG$ing them, the syms go in the table. If a sym is not found, the parent task's table is checked. The father of all tasks has the API syms you'll need waiting in it's table. No need to $FG,2$#include$FG$ headers.
|
||||
|
||||
* No need for namespaces -- scoping occurs automatically based on task symbol table hierarchy with the $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$'s symbol system-wide global.
|
||||
* No need for namespaces -- scoping occurs automatically based on task symbol table hierarchy with the $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$$FG$'s symbol system-wide global.
|
||||
|
||||
* Sometimes, I $LK,"cut corners",A="FI:::/Doc/CutCorners.DD"$ in the interest of keeping the code beautiful.
|
||||
|
|
|
@ -49,7 +49,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
|
|||
|
||||
* $LK,"Merge",A="MN:Merge"$() can be used to see what's changed. The $FG,2$+d$FG$ flag will show differences of files which have changed and allow you to merge code. (The $FG,2$+r$FG$ flag will recurse.)
|
||||
|
||||
* There is a utility $LK,"LinkChk",A="MN:LinkChk"$() which will check for broken links in documentation.
|
||||
* There is a utility $LK,"LinkCheck",A="MN:LinkCheck"$() which will check for broken links in documentation.
|
||||
|
||||
* You can use $LK,"Option",A="MN:Option"$($LK,"OPTf_WARN_PAREN",A="MN:OPTf_WARN_PAREN"$,ON) to find unnecessary parentheses in code.
|
||||
|
||||
|
@ -121,7 +121,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
|
|||
|
||||
* You can delete the $FG,4$~/Registry.HC$FG$ file. The policy is that deleting it will restore defaults. It is a text doc, if you want to edit it. Be careful of tree indentations.
|
||||
|
||||
* Study $LK,"::/Adam/Opt/Utils/MemRep.HC"$ and $LK,"WallPaper",A="MN:WallPaper"$() to learn how the system resources are put together.
|
||||
* Study $LK,"::/Zenith/Utils/MemRep.HC"$ and $LK,"WallPaper",A="MN:WallPaper"$() to learn how the system resources are put together.
|
||||
|
||||
* The editor's sel-text mechanism allows for disjoint portions of sel text. This is a feature, not a bug -- you can cut-and-paste disjoint text.
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ ZenithOS is for hobbyist programmers on single user (at a time) home computers,
|
|||
|
||||
There is no distinction between the terms $FG,2$task$FG$, $FG,2$process$FG$ or $FG,2$thread$FG$. All have a task record, $LK,"CTask",A="MN:CTask"$, pointed to by the $FG,2$FS$FG$ segment reg and are accessed with $FG,4$Fs->$FG$ while $FG,4$Gs->$FG$ points to a $LK,"CCPU",A="MN:CCPU"$ for the current CPU core. Each task can have just one window, but a task can have children with windows. (The segment regs are just used as extra regs -- there is nothing segmented about ZenithOS' memory.) It is approximately the case that $FG,2$ZenithOS$FG$ is multi-threading, single-processing.
|
||||
|
||||
In $FG,2$ZenithOS$FG$, $LK,"Adam Task",A="FF:::/Doc/Glossary.DD,Adam Task"$$FG$ refers to the father of all tasks. He's never supposed to die. Since tasks inherit the symbols of parents, system-wide stuff is associated with $FG,2$Adam$FG$. His heap is like kernel memory in other operating systems. Since $FG,2$Adam$FG$ is immortal, it's safe to alloc objects, not tied to any mortal task, from $FG,2$Adam$FG$'s heap. He stays in a server mode, taking requests, so you can ask him to $FG,2$#include$FG$ something, placing that code system-wide. A funny story is that originally I called it the $FG,2$root$FG$ task and even had a $FG,2$/Root$FG$ directory :-) $FG,2$Adam$FG$ executes $LK,"::/StartOS.HC"$ at boot time.
|
||||
In $FG,2$ZenithOS$FG$, $LK,"Zenith Task",A="FF:::/Doc/Glossary.DD,Zenith Task"$$FG$ refers to the father of all tasks. He's never supposed to die. Since tasks inherit the symbols of parents, system-wide stuff is associated with $FG,2$Zenith$FG$. His heap is like kernel memory in other operating systems. Since $FG,2$Zenith$FG$ is immortal, it's safe to alloc objects, not tied to any mortal task, from $FG,2$Zenith$FG$'s heap. He stays in a server mode, taking requests, so you can ask him to $FG,2$#include$FG$ something, placing that code system-wide. A funny story is that originally I called it the $FG,2$root$FG$ task and even had a $FG,2$/Root$FG$ directory :-) $FG,2$Zenith$FG$ executes $LK,"::/StartOS.HC"$ at boot time.
|
||||
|
||||
For easy back-ups, place everything you author in your $FG,2$/Home$FG$ directory and subdirectories. Then, use $LK,"CopyTree",A="MN:CopyTree"$(). That should make upgrading easy, too. Customizable start-up scripts go in your $FG,2$/Home$FG$ directory. The default start-up scripts are in the root directory. Copy the start-up files you wish to customize into $FG,2$/Home$FG$ and modify them. See $LK,"Home Files",A="FF:::/Doc/GuideLines.DD,/Home Files"$. You can make your own distro that includes everything and is a bootable live CD with $LK,"::/Misc/DoDistro.HC"$.
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ If a feature cannot be made to work correctly and consistently, professional com
|
|||
|
||||
The PCI bus interface is what modern hardware uses. Before PCI, life was simple and devices used I/O ports. After studying $LK,"PCI Interrupts",A="FI:::/Demo/Lectures/PCIInterrupts.HC"$ and attempting to do a HDAudio driver, I came to realize that modern PCI devices require ten times more code and I cannot even come close to making them work on everyone's machine because with PCI devices there are several models to worry about, unlike with the older ISA bus devices which can be done with one driver.
|
||||
|
||||
Currently, I have no PCI drivers. My drivers use I/O ports and operate in ISA bus mode. At this point, I only have one driver for each type of device and it is delightfully simple that way. I have one $LK,"keyboard",A="FI:::/Kernel/SerialDev/Keyboard.HC"$ driver, one $LK,"mouse",A="FI:::/Kernel/SerialDev/Mouse.HC"$ driver, one $LK,"ATA hard drive",A="FI:::/Kernel/BlkDev/DskATA.HC"$ driver, one $LK,"ATAPI CD/DVD",A="FI:::/Kernel/BlkDev/DskATA.HC"$ driver, one $LK,"VGA 640x480 16 color",A="FI:::/Adam/Gr/GrScrn.HC"$ video driver and one $LK,"PC Speaker",A="MN:Snd"$ driver. I use the $LK,"PIT and HPET timers",A="MN:TimersInit"$ and $LK,"PIC Interrupt Controller",A="MN:IntsInit"$. I use IRQ0 for timer, IRQ1 for keyboard, and IRQ12 for mouse. If IRQ12 is not firing, I am able to poll the mouse.
|
||||
Currently, I have no PCI drivers. My drivers use I/O ports and operate in ISA bus mode. At this point, I only have one driver for each type of device and it is delightfully simple that way. I have one $LK,"keyboard",A="FI:::/Kernel/SerialDev/Keyboard.HC"$ driver, one $LK,"mouse",A="FI:::/Kernel/SerialDev/Mouse.HC"$ driver, one $LK,"ATA hard drive",A="FI:::/Kernel/BlkDev/DiskATA.HC"$ driver, one $LK,"ATAPI CD/DVD",A="FI:::/Kernel/BlkDev/DiskATA.HC"$ driver, one $LK,"VGA 640x480 16 color",A="FI:::/Zenith/Gr/GrScrn.HC"$ video driver and one $LK,"PC Speaker",A="MN:Snd"$ driver. I use the $LK,"PIT and HPET timers",A="MN:TimersInit"$ and $LK,"PIC Interrupt Controller",A="MN:IntsInit"$. I use IRQ0 for timer, IRQ1 for keyboard, and IRQ12 for mouse. If IRQ12 is not firing, I am able to poll the mouse.
|
||||
|
||||
In the CPU department, I have state of the art 64-bit $LK,"long mode",A="FI:::/Kernel/KStart64.HC"$ with $LK,"multicore",A="FI:::/Kernel/MultiProc.HC"$ support. I use the $LK,"APIC",A="MN:MPAPICInit"$ and start-up $LK,"multicore",A="MN:Core0StartMP"$ operation.
|
||||
|
||||
|
@ -12,11 +12,11 @@ I have made an incredible accomplishment by getting it to work on practically ev
|
|||
|
||||
Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12, boot mode and regular mode for keyboard/mouse and a diversity of HID reports. It's hopeless. I could never offer anything but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would I gain? Nothing. A keyboard or mouse would not be improved. Solid State USB drives would be really nice, but it's not going to happen.
|
||||
|
||||
The same story is basically true for GPUs, audio, networking and AHCI hard drive drivers. God said 640x480 16 color was a covenant like circumcision, so the video will never change, even if a $LK,"Standard PC",A="FI:::/Doc/StdTempleOSPC.DD"$ was made. If you attempt multimedia, everything will break because memory will get fragmented with huge multimedia files. Some day, if super-simple high speed serial allows networking, there will be no browser within the 100,000 line limit and, with only 16 colors, the world wide web is not tolerable. FTP and telnet might be possible, in the far distant future, if they could fit within the 100,000 line limit. Currently, there are $TX,"82,150",D="DD_TEMPLEOS_LOC"$ lines of code.
|
||||
The same story is basically true for GPUs, audio, networking and AHCI hard drive drivers. God said 640x480 16 color was a covenant like circumcision, so the video will never change, even if a $LK,"Standard PC",A="FI:::/Doc/StdZenithOSPC.DD"$ was made. If you attempt multimedia, everything will break because memory will get fragmented with huge multimedia files. Some day, if super-simple high speed serial allows networking, there will be no browser within the 100,000 line limit and, with only 16 colors, the world wide web is not tolerable. FTP and telnet might be possible, in the far distant future, if they could fit within the 100,000 line limit. Currently, there are $TX,"82,150",D="DD_TEMPLEOS_LOC"$ lines of code.
|
||||
|
||||
I don't stand a chance working on native hardware, anymore. I could install and run natively on hardware from about 2005-2010. It requires BIOS's being nice enough to write USB mode PS/2 legacy keyboard/mouse support. As it turns-out, sometimes the BIOS has PS/2 drivers but purposely disables them, just to be mean. The CIA and whole industry is trying to mess everything up, on purpose. Perhaps, at a point of sale in a store, a thief could hack a credit card machine. Therefore, the BIOS companies actually want it difficult to make drivers and purposely make it broken.
|
||||
|
||||
The ATA/ATAPI hard drives often can be run with I/O ports if you can $LK,"find them",A="FI:::/Kernel/BlkDev/DskATAId.HC"$. $FG,2$lspci -v$FG$ on Linux or system information on Windows can help you locate the SATA IO ports the hard drive and CD/DVD have. They no longer are enabled by the BIOS. It's hopeless. I'm stuck with very slow drive performance, but it works for everybody.
|
||||
The ATA/ATAPI hard drives often can be run with I/O ports if you can $LK,"find them",A="FI:::/Kernel/BlkDev/DiskATAId.HC"$. $FG,2$lspci -v$FG$ on Linux or system information on Windows can help you locate the SATA IO ports the hard drive and CD/DVD have. They no longer are enabled by the BIOS. It's hopeless. I'm stuck with very slow drive performance, but it works for everybody.
|
||||
|
||||
UEFI is pointless. If I am forced to run in VMware, QEMU or VirtualBox, they will always support non-UEFI mode. Without working, native hard drive and CD/DVD drivers, you can't get very far with UEFI on a native install, not to mention SecureBoot. UEFI is, first of all, redundant. If non-UEFI works in a virtual machine, supporting UEFI would only be redundant, ugly nasty code. My compiler does not create an ELF or PE format. I would have to ruin the beauty of my compiler, which would make me cry many tears.
|
||||
|
||||
|
@ -24,7 +24,7 @@ God talks. It seems reasonable that I will get to make the rules for the whole
|
|||
|
||||
I made $LK,"::/Doc/Demands.DD"$.
|
||||
|
||||
When the PC was created, they wanted flexibility because they did not know the future. Now, the industry is mature and it is time to make a 100% standard PC that everybody uses. $LK,"::/Doc/StdTempleOSPC.DD"$
|
||||
When the PC was created, they wanted flexibility because they did not know the future. Now, the industry is mature and it is time to make a 100% standard PC that everybody uses. $LK,"::/Doc/StdZenithOSPC.DD"$
|
||||
|
||||
$FG,8$
|
||||
* "QEMU" is a trademark owned by Fabrice Bellard.
|
||||
|
|
|
@ -22,7 +22,7 @@ U0 MakeMyISO(U8 *_out_iso_filename)
|
|||
|
||||
CopyTree(BOOT_DIR, "/Distro" BOOT_DIR);
|
||||
CopyTree("/Home", "/Distro/Home");
|
||||
CopyTree("/Adam", "/Distro/Adam");
|
||||
CopyTree("/Zenith", "/Distro/Zenith");
|
||||
CopyTree("/Apps", "/Distro/Apps");
|
||||
CopyTree("/Compiler", "/Distro/Compiler");
|
||||
CopyTree("/Demo", "/Distro/Demo");
|
||||
|
@ -31,7 +31,7 @@ U0 MakeMyISO(U8 *_out_iso_filename)
|
|||
CopyTree("/Misc", "/Distro/Misc");
|
||||
|
||||
//To save space, optionally delete dictionary.
|
||||
//Del("/Distro/Adam/AutoComplete/ACDefs.DATA");
|
||||
//Del("/Distro/Zenith/AutoComplete/ACDefs.DATA");
|
||||
CopyTree("/Downloads","/Distro/Downloads"); //You can leave this out.
|
||||
DirMk("/Distro/Tmp");
|
||||
DirMk("/Distro/Tmp/ScrnShots");
|
||||
|
@ -40,7 +40,7 @@ U0 MakeMyISO(U8 *_out_iso_filename)
|
|||
//If CD-ROM use MT_CD instead of MT_DVD.
|
||||
//DVDImageWrite('T',out_iso_filename,MT_DVD); //Uncomment to burn.
|
||||
|
||||
DelTree("/Distro");
|
||||
DelTree("/Distro");
|
||||
Free(out_iso_filename);
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue