Team Ai
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes847downloads
WallPaper.txt168 linesDownload Raw Back to Adam
1 2#help_index "Windows"3 4class CWallPaperGlbls5{6  I64   last_calc_idle_cnt,last_swap_cnter[MP_PROCESSORS_NUM];7  F64   last_calc_idle_delta_time;8  U8    top_line[STR_LEN];9  Bool  record;10} *wall=CAlloc(sizeof(CWallPaperGlbls));11wall->last_calc_idle_delta_time=1.0;12 13class CTaskWallPaperData14{15  I64   alloced_u8s,used_u8s;16  U8    caller_stk[STR_LEN-$];17};18 19U0 WallPaper(CTask *_task)20{21  I64 i,j,l=TEXT_ROWS-1;22  CTask *task;23  CTaskWallPaperData *wpd;24  CHashTable *old_hash=Fs->hash_table;25  CCPU *c;26  CDateStruct ds;27  U8 *st;28  _task->text_attr=BLUE<<4+WHITE;29  if (sys_data_bp) {30    TextPrint(Fs,0,l--,BLUE<<4+YELLOW,31          "%010X/%010X %010X/%010X%12td%12td%12td",32          sys_data_bp->used_u8s,sys_data_bp->alloced_u8s,33          sys_code_bp->used_u8s,sys_code_bp->alloced_u8s,34          cmp.compiled_lines,blkdev.read_cnt,blkdev.write_cnt);35    TextPrint(Fs,0,l--,BLUE<<4+WHITE,36          "______Data_Heap______ ______Code_Heap______ "37          "___Lines___ ___Reads___ __Writes___");38  } else {39    TextPrint(Fs,0,l--,BLUE<<4+WHITE,40          "%010X/%010X%12td%12td%12td",41          sys_code_bp->used_u8s,sys_code_bp->alloced_u8s,42          cmp.compiled_lines,blkdev.read_cnt,blkdev.write_cnt);43    TextPrint(Fs,0,l--,BLUE<<4+WHITE,44          "____CodeData_Heap____ "45          "___Lines___ ___Reads___ ___Writes__");46  }47  TextPrint(Fs,0,l--,BLUE<<4+WHITE,"ProgressBars:%016X %016X %016X %016X",48        progress1,progress2,progress3,progress4);49  for (i=0;i<mp_cnt;i++) {50    c=&cpu_structs[i];51    if (winmgr.t->calc_idle_cnt!=wall->last_calc_idle_cnt) {52      wall->last_calc_idle_delta_time=winmgr.t->calc_idle_delta_time;53      wall->last_swap_cnter[i]=winmgr.t->last_swap_cnter[i];54      winmgr.t->last_swap_cnter[i]=c->swap_cnter;55    }56 57    task=c->seth_task;58    do {59      wpd=&task->wallpaper_data;60      if (!TaskValidate(task)) break;61      if (!(winmgr.updates&31)) {62        if (c==Gs)63          Fs->hash_table=task->hash_table;64        else //precaution65          Fs->hash_table=old_hash;66        StrPrint(wpd->caller_stk,"    %-18tp %-18tp %-18tp %-18tp",67              TaskCaller(task,0),TaskCaller(task,1),68              TaskCaller(task,2),TaskCaller(task,3));69      }70      TextPrint(Fs,0,l--,BLUE<<4+YELLOW,wpd->caller_stk);71      j=UnusedStk(task);72      if (j<0)73        Panic("Stk Overflow",task);74      if (!(winmgr.updates&31)) {75        wpd->alloced_u8s=TaskMemAlloced(task);76        wpd->used_u8s   =TaskMemUsed(task);77      }78      TextPrint(Fs,0,l--,BLUE<<4+BROWN,79            "  %-18ts #%08X %010X %010X/%010X %04X:%02tX:%08X",80            task->task_title,task,j,wpd->used_u8s,wpd->alloced_u8s,81            task->task_flags,task->display_flags,task->win_inhibit);82      if (!TaskValidate(task)) break;83      task=task->next_task;84    } while (task!=c->seth_task);85    TextPrint(Fs,0,l--,BLUE<<4+WHITE,"CPU%02X %2tf%% ContextSwaps/s:%9,d",i,86          100.0*(1.0-c->idle_factor),ToI64((winmgr.t->last_swap_cnter[i]87          -wall->last_swap_cnter[i])/wall->last_calc_idle_delta_time));88  }89  TextPrint(Fs,0,l--,BLUE<<4+WHITE,90        "  ___Description____ #__Task__ UnusedStk_ _UsedMem__/_AllocMem_ "91        "______Flags_____");92 93  if (!(winmgr.updates&31) || !*wall->top_line) {94    Date2Struct(&ds,Now+local_time_offset);95    i=sys_code_bp->alloced_u8s-sys_code_bp->used_u8s;96    if (sys_data_bp)97      i+=sys_data_bp->alloced_u8s-sys_data_bp->used_u8s;98    StrPrint(wall->top_line,99          "%3tZ %02d/%02d %02d:%02d:%02d FPS:%2tf Mem:%010X CPU",100          ds.day_of_week,"ST_DAYS_OF_WEEK",ds.mon,ds.day_of_mon,101          ds.hour,ds.min,ds.sec,winmgr.fps,i);102  }103  TextPrint(Fs,0,0,BLUE<<4+WHITE,wall->top_line);104 105  if (wall->record)106    TextPrint(Fs,44-4,0,BLUE<<4+RED,"*");107  for (i=0;i<mp_cnt;i++) {108    c=&cpu_structs[i];109    if (i&1)110      TextPrint(Fs,44+i*2,0,BLUE<<4+WHITE,"%2tf",100.0*(1.0-c->idle_factor));111    else112      TextPrint(Fs,44+i*2,0,BLUE<<4+YELLOW,"%2tf",100.0*(1.0-c->idle_factor));113  }114 115  st=ScanCode2KeyName(kbd.last_down_scan_code);116  TextPrint(Fs,80-18,0,BLUE<<4+YELLOW,"%18ts",st);117  Free(st);118 119  Fs->hash_table=old_hash;120  wall->last_calc_idle_cnt=winmgr.t->calc_idle_cnt;121}122 123<1>/* Graphics Not Rendered in HTML */124 125 126 127U0 DrawTermBttn(CDC *dc,CCtrl *c)128{129  if (Blink)130    Sprite3(dc,c->left,c->top,0,<1>);131}132 133U0 LeftClickTermBttn(CCtrl *,I64,I64,Bool down)134{135  if (down)136    User;137}138 139CCtrl *TermBttnNew()140{141  I64 min_x,max_x,min_y,max_y;142  CCtrl *c=ACAlloc(sizeof(CCtrl));143 144  c->win_task=sys_winmgr_task;145  c->flags=CTRLF_SHOW;146  c->type=CTRLT_GENERIC;147  c->draw_it=&DrawTermBttn;148  c->left_click=&LeftClickTermBttn;149 150  SpriteExtents(<1>,&min_x,&max_x,&min_y,&max_y);151//min must be zero152  c->left=sys_winmgr_task->pix_width-(max_x-min_x+1);153  c->right=c->left+(max_x-min_x+1)-1;154  c->top=sys_winmgr_task->pix_height-(max_y-min_y+1);155  c->bottom=c->top+(max_y-min_y+1)-1;156 157  QueIns(c,sys_winmgr_task->last_ctrl);158  TaskDerivedValsUpdate(sys_winmgr_task);159 160  return c;161}162 163U0 WallPaperInit()164{165  TermBttnNew;166  gr.fp_wall_paper=&WallPaper;167}168