From f4d859dce0a4e1b3ba4e4f2cb288efcc63a26fdf Mon Sep 17 00:00:00 2001 From: TomAwezome Date: Sat, 23 May 2020 21:52:50 -0400 Subject: [PATCH] spacing and formatting --- ...o => Zenith-latest-2020-05-23-21_51_58.iso | Bin 34308096 -> 34310144 bytes src/Home/FilesRefactored.DD | 2 + src/Zenith/ZMemory.CC | 176 +++++++++-------- src/Zenith/ZRegistry.CC | 182 ++++++++++-------- 4 files changed, 199 insertions(+), 161 deletions(-) rename Zenith-latest-2020-05-23-01_28_40.iso => Zenith-latest-2020-05-23-21_51_58.iso (99%) diff --git a/Zenith-latest-2020-05-23-01_28_40.iso b/Zenith-latest-2020-05-23-21_51_58.iso similarity index 99% rename from Zenith-latest-2020-05-23-01_28_40.iso rename to Zenith-latest-2020-05-23-21_51_58.iso index 5c80335baffe820c02f0b02bc84bd142b4cd703b..d236efcda772b7ee9e75362c4beae2bbac8596f0 100755 GIT binary patch delta 45934 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 diff --git a/src/Home/FilesRefactored.DD b/src/Home/FilesRefactored.DD index 5c62d564..aabe46c6 100755 --- a/src/Home/FilesRefactored.DD +++ b/src/Home/FilesRefactored.DD @@ -23,6 +23,8 @@ StartOS.CC ZHash.CC ZMath.CC ZMathODE.CC + ZMemory.CC + ZRegistry.CC ZMouse.CC ZBlkDev/ diff --git a/src/Zenith/ZMemory.CC b/src/Zenith/ZMemory.CC index d61d6dad..0d4d924e 100755 --- a/src/Zenith/ZMemory.CC +++ b/src/Zenith/ZMemory.CC @@ -1,111 +1,128 @@ #help_index "Memory/Task" -public I64 TaskMemAlloced(CTask *task=NULL,Bool override_validate=FALSE) +public I64 TaskMemAlloced(CTask *task=NULL, Bool override_validate=FALSE) {//Count of bytes alloced to a task, used+unused. I64 res; - if (!task) task=Fs; - if (override_validate || TaskValidate(task)) { - res=task->code_heap->alloced_u8s; - if (task->code_heap!=task->data_heap) - res+=task->data_heap->alloced_u8s; + if (!task) + task = Fs; + if (override_validate || TaskValidate(task)) + { + res = task->code_heap->alloced_u8s; + if (task->code_heap != task->data_heap) + res += task->data_heap->alloced_u8s; return res; - } else + } + else return 0; } -public I64 TaskMemUsed(CTask *task=NULL,Bool override_validate=FALSE) +public I64 TaskMemUsed(CTask *task=NULL, Bool override_validate=FALSE) {//Count of bytes alloced to a task and in use. I64 res; - if (!task) task=Fs; - if (override_validate || TaskValidate(task)) { - res=task->code_heap->used_u8s; - if (task->data_heap!=task->code_heap) - res+=task->data_heap->used_u8s; + if (!task) + task = Fs; + if (override_validate || TaskValidate(task)) + { + res = task->code_heap->used_u8s; + if (task->data_heap != task->code_heap) + res += task->data_heap->used_u8s; return res; - } else + } + else return 0; } #help_index "Memory/Task;Debugging/Heap;Memory/Debugging" public Bool HeapRep(CTask *task) {//Report status of task's heap. - I64 i,count; + I64 i, count; CMemUnused *uum; - if (!task || task==Fs) { + if (!task || task == Fs) + { "Task can't HeapRep on self.\n"; return FALSE; } - if (!TaskValidate(task)) return FALSE; + if (!TaskValidate(task)) + return FALSE; PUSHFD CLI - while (LBts(&task->code_heap->locked_flags,HClf_LOCKED)) + while (LBts(&task->code_heap->locked_flags, HClf_LOCKED)) PAUSE - if (task->data_heap!=task->code_heap) - while (LBts(&task->data_heap->locked_flags,HClf_LOCKED)) + if (task->data_heap != task->code_heap) + while (LBts(&task->data_heap->locked_flags, HClf_LOCKED)) PAUSE - for (i=0;i>3;i++) { - count=0; - uum=task->code_heap->heap_hash[i]; - while (uum) { - count+=uum->size; - uum=uum->next; + for (i = 0; i < MEM_HEAP_HASH_SIZE >> 3; i++) + { + count = 0; + uum = task->code_heap->heap_hash[i]; + while (uum) + { + count += uum->size; + uum = uum->next; } - if (task->data_heap!=task->code_heap) { - uum=task->data_heap->heap_hash[i]; - while (uum) { - count+=uum->size; - uum=uum->next; + if (task->data_heap != task->code_heap) + { + uum = task->data_heap->heap_hash[i]; + while (uum) + { + count += uum->size; + uum = uum->next; } } if (count) - "%03X:%08X\n",i<<3,count; + "%03X:%08X\n", i << 3, count; } '\n'; - uum=task->code_heap->malloc_free_list; - while (uum) { - "%X, ",uum->size; - uum=uum->next; + uum = task->code_heap->malloc_free_list; + while (uum) + { + "%X, ", uum->size; + uum = uum->next; } - if (task->data_heap!=task->code_heap) { - uum=task->data_heap->malloc_free_list; - while (uum) { - "%X, ",uum->size; - uum=uum->next; + if (task->data_heap != task->code_heap) + { + uum = task->data_heap->malloc_free_list; + while (uum) + { + "%X, ", uum->size; + uum = uum->next; } } - if (task->data_heap!=task->code_heap) - LBtr(&task->data_heap->locked_flags,HClf_LOCKED); - LBtr(&task->code_heap->locked_flags,HClf_LOCKED); + if (task->data_heap != task->code_heap) + LBtr(&task->data_heap->locked_flags, HClf_LOCKED); + LBtr(&task->code_heap->locked_flags, HClf_LOCKED); POPFD '\n'; } #help_index "Memory/HeapCtrl;Debugging/Heap;Memory/Debugging" -public Bool IsInHeapCtrl(U8 *a,CHeapCtrl *hc,Bool lock=TRUE) +public Bool IsInHeapCtrl(U8 *a, CHeapCtrl *hc, Bool lock=TRUE) {//Check addr if in HeapCtrl. CMemBlk *m; PUSHFD CLI if (lock) - while (LBts(&hc->locked_flags,HClf_LOCKED)) + while (LBts(&hc->locked_flags, HClf_LOCKED)) PAUSE m=hc->next_mem_blk; - while (m!=&hc->next_mem_blk) { - if (a>=m && apags<next_mem_blk) + { + if (a >= m && a < m(U8 *) + m->pags << MEM_PAG_BITS) + { if (lock) - LBtr(&hc->locked_flags,HClf_LOCKED); + LBtr(&hc->locked_flags, HClf_LOCKED); POPFD return TRUE; } - m=m->next; + m = m->next; } if (lock) - LBtr(&hc->locked_flags,HClf_LOCKED); + LBtr(&hc->locked_flags, HClf_LOCKED); POPFD return FALSE; } @@ -117,52 +134,57 @@ public Bool HeapCtrlWalk(CHeapCtrl *hc) PUSHFD CLI - while (LBts(&hc->locked_flags,HClf_LOCKED)) + while (LBts(&hc->locked_flags, HClf_LOCKED)) PAUSE - for (i=0;i>3;i++) { - uum=hc->heap_hash[i]; - while (uum) { - if (!IsInHeapCtrl(uum,hc,FALSE)) + for (i = 0; i < MEM_HEAP_HASH_SIZE >> 3; i++) + { + uum = hc->heap_hash[i]; + while (uum) + { + if (!IsInHeapCtrl(uum, hc, FALSE)) goto hc_false; - uum=uum->next; + uum = uum->next; } } - uum=hc->malloc_free_list; - while (uum) { - if (!IsInHeapCtrl(uum,hc,FALSE)) + uum = hc->malloc_free_list; + while (uum) + { + if (!IsInHeapCtrl(uum, hc, FALSE)) goto hc_false; - uum=uum->next; + uum = uum->next; } #if _CONFIG_HEAP_DEBUG - CMemUsed *um,*um1; - um1=(&hc->next_um)(U8 *)-offset(CMemUsed.next); - um=um1->next; - while (um!=um1) { - if (!IsInHeapCtrl(um,hc,FALSE)) + CMemUsed *um, *um1; + um1 = (&hc->next_um)(U8 *) - offset(CMemUsed.next); + um = um1->next; + while (um != um1) + { + if (!IsInHeapCtrl(um, hc, FALSE)) goto hc_false; - um=um->next; + um = um->next; } #endif - LBtr(&hc->locked_flags,HClf_LOCKED); + LBtr(&hc->locked_flags, HClf_LOCKED); POPFD return TRUE; hc_false: - LBtr(&hc->locked_flags,HClf_LOCKED); + LBtr(&hc->locked_flags, HClf_LOCKED); POPFD return FALSE; } #help_index "Memory/Task;Debugging/Heap;Memory/Debugging" -public Bool IsInHeap(U8 *a,CTask *task=NULL,Bool lock=TRUE) +public Bool IsInHeap(U8 *a, CTask *task=NULL, Bool lock=TRUE) {//Check addr if in task's heaps. - if (!task) task=Fs; - if (TaskValidate(task) && (IsInHeapCtrl(a,task->code_heap,lock)|| - task->data_heap!=task->code_heap && - IsInHeapCtrl(a,task->data_heap,lock))) + if (!task) + task = Fs; + if (TaskValidate(task) && (IsInHeapCtrl(a, task->code_heap, lock) || + task->data_heap != task->code_heap && + IsInHeapCtrl(a, task->data_heap, lock))) return TRUE; else return FALSE; @@ -170,9 +192,9 @@ public Bool IsInHeap(U8 *a,CTask *task=NULL,Bool lock=TRUE) public Bool HeapWalk(CTask *task=NULL) {//Check integrity of task's heaps. - if (!task) task=Fs; - if (!TaskValidate(task) || !HeapCtrlWalk(task->code_heap) || - task->data_heap!=task->code_heap && !HeapCtrlWalk(task->data_heap)) + if (!task) + task = Fs; + if (!TaskValidate(task) || !HeapCtrlWalk(task->code_heap) || task->data_heap != task->code_heap && !HeapCtrlWalk(task->data_heap)) return FALSE; else return TRUE; diff --git a/src/Zenith/ZRegistry.CC b/src/Zenith/ZRegistry.CC index 8f02863e..fa4a999c 100755 --- a/src/Zenith/ZRegistry.CC +++ b/src/Zenith/ZRegistry.CC @@ -1,40 +1,46 @@ #help_index "Registry" #define REGISTRY_FILENAME "~/Registry.CC" -CDoc *sys_registry_doc=NULL; -I64 sys_message_flags[1]={0}; + +CDoc *sys_registry_doc = NULL; +I64 sys_message_flags[1] = {0}; F64 registry_version; Bool RegCache() { Bool old_silent; - if (!sys_registry_doc) { - old_silent=Silent; - sys_registry_doc=DocRead(REGISTRY_FILENAME); + if (!sys_registry_doc) + { + old_silent = Silent; + sys_registry_doc = DocRead(REGISTRY_FILENAME); Silent(old_silent); return FALSE; - } else + } + else return TRUE; } -public Bool RegDefault(U8 *path,U8 *val,Bool is_zenith_entry=FALSE) +public Bool RegDefault(U8 *path, U8 *val, Bool is_zenith_entry=FALSE) {//Add code doc tree branch to registry. - Bool res,unlock_doc; + Bool res, unlock_doc; RegCache; - unlock_doc=DocLock(sys_registry_doc); - if (!DocTreeFind(sys_registry_doc,path)) { - DocTreeMake(sys_registry_doc,path); - DocPrint(sys_registry_doc,"%s",val); - if (is_zenith_entry) { - if (Fs==zenith_task) - ExePrint("%s",val); + unlock_doc = DocLock(sys_registry_doc); + if (!DocTreeFind(sys_registry_doc, path)) + { + DocTreeMake(sys_registry_doc, path); + DocPrint(sys_registry_doc, "%s", val); + if (is_zenith_entry) + { + if (Fs == zenith_task) + ExePrint("%s", val); else - Zenith("%s",val); + Zenith("%s", val); } if (DriveIsWritable(*sys_registry_doc->filename.name)) DocWrite(sys_registry_doc); - res=FALSE; - } else - res=TRUE; + res = FALSE; + } + else + res = TRUE; if (unlock_doc) DocUnlock(sys_registry_doc); return res; @@ -43,28 +49,29 @@ public Bool RegDefault(U8 *path,U8 *val,Bool is_zenith_entry=FALSE) public I64 RegExe(U8 *path) {//Execute doc tree branch in registry. RegCache; - return DocTreeExe(sys_registry_doc,path); + return DocTreeExe(sys_registry_doc, path); } -public Bool RegWrite(U8 *path,U8 *format,...) +public Bool RegWrite(U8 *path, U8 *format, ...) {//Rewrite doc tree branch in registry. Bool res; RegCache; - res=DocTreeWriteJoin(sys_registry_doc,path,TRUE,format,argc,argv); + res = DocTreeWriteJoin(sys_registry_doc, path, TRUE, format, argc, argv); return res; } public I64 RegCount(U8 *path) {//Tree branch count in registry. - I64 res=0; - CDocEntry *tree_branch,*start_indent,*end_indent; - Bool unlock_doc=DocLock(sys_registry_doc); - if (DocTreeFind(sys_registry_doc,path, - &tree_branch,&start_indent,&end_indent)) { - end_indent=end_indent->next; - while (start_indent!=end_indent) { + I64 res = 0; + CDocEntry *tree_branch, *start_indent, *end_indent; + Bool unlock_doc = DocLock(sys_registry_doc); + if (DocTreeFind(sys_registry_doc, path, &tree_branch, &start_indent, &end_indent)) + { + end_indent = end_indent->next; + while (start_indent != end_indent) + { res++; - start_indent=start_indent->next; + start_indent = start_indent->next; } } if (unlock_doc) @@ -72,49 +79,52 @@ public I64 RegCount(U8 *path) return res; } -public Bool RegAppend(U8 *path,U8 *format,...) +public Bool RegAppend(U8 *path, U8 *format, ...) {//Append to doc tree branch in registry. Bool res; RegCache; - res=DocTreeAppendJoin(sys_registry_doc,path,TRUE,format,argc,argv); + res = DocTreeAppendJoin(sys_registry_doc, path, TRUE, format, argc, argv); return res; } -public Bool OneTimePopUp(U8 *_flags,I64 flag_num,U8 *message) +public Bool OneTimePopUp(U8 *_flags, I64 flag_num, U8 *message) {//See $LK,"::/Apps/X-Caliber/X-Caliber.CC"$. - Bool res=FALSE; - CDoc *doc=DocNew; + Bool res = FALSE; + CDoc *doc = DocNew; CDocEntry *doc_e; - if (!Bt(_flags,flag_num)) { - if (message) DocPrint(doc,"%s",message); - doc_e=DocPrint(doc,"\n$$CB,\"Do not show this message again.\",LE=1$$"); - DocPrint(doc,"$$CM+CX,0,4$$$$BT,\"OKAY\",LE=1$$\n"); - if (PopUpMenu(doc)==1 && doc_e->de_flags&DOCEF_CHECKED_COLLAPSED) { - LBts(_flags,flag_num); - res=TRUE; + if (!Bt(_flags, flag_num)) + { + if (message) + DocPrint(doc, "%s", message); + doc_e = DocPrint(doc, "\n$$CB,\"Do not show this message again.\",LE=1$$"); + DocPrint(doc, "$$CM+CX,0,4$$$$BT,\"OKAY\",LE=1$$\n"); + if (PopUpMenu(doc) == 1 && doc_e->de_flags & DOCEF_CHECKED_COLLAPSED) + { + LBts(_flags, flag_num); + res = TRUE; } DocDel(doc); } return res; } -U0 RegOneTimePopUp(I64 flag_num,U8 *message) +U0 RegOneTimePopUp(I64 flag_num, U8 *message) {//You're not supposed to make system pop-up flags, only me. - if (OneTimePopUp(sys_message_flags,flag_num,message)) - RegWrite("Zenith/SysMessageFlags","sys_message_flags[0]=0x%X;\n", - sys_message_flags[0]); + if (OneTimePopUp(sys_message_flags, flag_num,message)) + RegWrite("Zenith/SysMessageFlags", "sys_message_flags[0]=0x%X;\n", sys_message_flags[0]); } U0 RegInit() { U8 buf[STR_LEN]; Bool version_present; - RegDefault("Zenith/SysMessageFlags","sys_message_flags[0]=0;\n",TRUE); - StrPrint(buf,"registry_version=%4.3f;\n",sys_os_version); - version_present=RegDefault("Zenith/SysRegVer",buf,TRUE); + RegDefault("Zenith/SysMessageFlags", "sys_message_flags[0]=0;\n", TRUE); + StrPrint(buf, "registry_version=%4.3f;\n", sys_os_version); + version_present = RegDefault("Zenith/SysRegVer", buf, TRUE); RegExe("Zenith"); - if (registry_version!=sys_os_version) { - RegWrite("Zenith/SysRegVer",buf); + if (registry_version != sys_os_version) + { + RegWrite("Zenith/SysRegVer", buf); RegExe("Zenith"); } } @@ -124,80 +134,84 @@ U0 RegInit() public U0 ZOnceFlush() {//Flush ZOnce() buf. - RegWrite("Once/Zenith",""); + RegWrite("Once/Zenith", ""); } public U0 OnceFlush() {//Flush Once() buf. - RegWrite("Once/User",""); + RegWrite("Once/User", ""); } -public U0 ZOnce(U8 *format,...) +public U0 ZOnce(U8 *format, ...) {//Add Zenith code to $LK,"~/Registry.CC"$, executed next boot. - U8 *buf=StrPrintJoin(NULL,format,argc,argv); - if (!Bt(&sys_run_level,RLf_ONCE_ZENITH)) + U8 *buf = StrPrintJoin(NULL, format, argc, argv); + if (!Bt(&sys_run_level, RLf_ONCE_ZENITH)) ZOnceFlush; - RegAppend("Once/Zenith","%s\n",buf); + RegAppend("Once/Zenith", "%s\n", buf); Free(buf); } -public U0 Once(U8 *format,...) +public U0 Once(U8 *format, ...) {//Add User code to $LK,"~/Registry.CC"$, executed next boot. - U8 *buf=StrPrintJoin(NULL,format,argc,argv); - if (!Bt(&sys_run_level,RLf_ONCE_USER)) + U8 *buf = StrPrintJoin(NULL, format, argc, argv); + if (!Bt(&sys_run_level, RLf_ONCE_USER)) OnceFlush; - RegAppend("Once/User","%s\n",buf); + RegAppend("Once/User", "%s\n", buf); Free(buf); } -public U0 ZOnceDrive(U8 drv_let=0,U8 *format,...) +public U0 ZOnceDrive(U8 drv_let=0, U8 *format, ...) {//Add Zenith code to drv $LK,"~/Registry.CC"$, executed next boot. - U8 *buf=StrPrintJoin(NULL,format,argc,argv); - I64 old_drive_let=*sys_registry_doc->filename.name; + U8 *buf = StrPrintJoin(NULL, format, argc, argv); + I64 old_drive_let = *sys_registry_doc->filename.name; if (drv_let) - *sys_registry_doc->filename.name=drv_let; - if (!Bt(&sys_run_level,RLf_ONCE_ZENITH)) + *sys_registry_doc->filename.name = drv_let; + if (!Bt(&sys_run_level, RLf_ONCE_ZENITH)) ZOnceFlush; - RegAppend("Once/Zenith","%s\n",buf); + RegAppend("Once/Zenith", "%s\n", buf); Free(buf); - *sys_registry_doc->filename.name=old_drive_let; + *sys_registry_doc->filename.name = old_drive_let; } -public U0 OnceDrive(U8 drv_let=0,U8 *format,...) +public U0 OnceDrive(U8 drv_let=0, U8 *format, ...) {//Add User code to drv $LK,"~/Registry.CC"$, executed next boot. - U8 *buf=StrPrintJoin(NULL,format,argc,argv); - I64 old_drive_let=*sys_registry_doc->filename.name; + U8 *buf = StrPrintJoin(NULL, format, argc, argv); + I64 old_drive_let = *sys_registry_doc->filename.name; if (drv_let) - *sys_registry_doc->filename.name=drv_let; - if (!Bt(&sys_run_level,RLf_ONCE_USER)) + *sys_registry_doc->filename.name = drv_let; + if (!Bt(&sys_run_level, RLf_ONCE_USER)) OnceFlush; - RegAppend("Once/User","%s\n",buf); + RegAppend("Once/User", "%s\n", buf); Free(buf); - *sys_registry_doc->filename.name=old_drive_let; + *sys_registry_doc->filename.name = old_drive_let; } public U0 OnceExe() {//Execute Once code. Call goes in $LK,"~/Once.CC"$. try { - RegDefault("Once/Zenith",""); - if (RegCount("Once/Zenith")>2) { + RegDefault("Once/Zenith", ""); + if (RegCount("Once/Zenith") > 2) + { Zenith("RegExe(\"Once/Zenith\");"); ZOnceFlush; } - LBts(&sys_run_level,RLf_ONCE_ZENITH); + LBts(&sys_run_level, RLf_ONCE_ZENITH); - RegDefault("Once/User",""); - if (RegCount("Once/User")>2) { + RegDefault("Once/User", ""); + if (RegCount("Once/User") > 2) + { RegExe("Once/User"); OnceFlush; } - LBts(&sys_run_level,RLf_ONCE_USER); + LBts(&sys_run_level, RLf_ONCE_USER); - } catch { + } + catch + { ZOnceFlush; - LBts(&sys_run_level,RLf_ONCE_ZENITH); + LBts(&sys_run_level, RLf_ONCE_ZENITH); OnceFlush; - LBts(&sys_run_level,RLf_ONCE_USER); + LBts(&sys_run_level, RLf_ONCE_USER); } }