static char * game_line(struct s_grid *grid, char *data, int *pc, int line, coord *select) { int i; data[(*pc)++] = '|'; for (i = 0; i < grid->longer; ++i) { if (grid->cases[line][i].display != '?' && grid->cases[line][i].display != ' ') data = insert_char_color(data, pc, grid->cases[line][i].display); else if (grid->cases[line][i].display == '?') data = insert_bold(data, pc); data[(*pc)++] = grid->cases[line][i].display; if (line == select->y && i == select->x) data = insert_background(data, pc, black); data = suppr_color(data, pc); data[(*pc)++] = '|'; } data[(*pc)++] = '\n'; return data; }
void dispatch() { PCB *pcb; if(PTBR->pcb->status == running) { /*insert process in ready queue*/ insert_ready(PTBR->pcb); } //pcb = hf; //if pcb = head here, would it ever go to hb? if(pcb == hf) { PTBR = pcb->page_tbl; prepage(pcb); pcb->status = running; pcb->last_dispatch = get_clock(); set_timer(Quantum); insert_background(PTBR->pcb); } else if (pcb == hb) { PTBR = pcb->page_tbl; prepage(pcb); pcb->status = running; pcb->last_dispatch = get_clock(); set_timer(Quantum); } else { PTBR = NULL; } }