int key_pressed(int keycode, t_env *e) { keycode == 53 ? quit(e, EXIT_SUCCESS) : 0; keycode == 75 ? e->stereo_nb += 0.001 : 0; keycode == 67 ? e->stereo_nb -= 0.001 : 0; if (keycode != MOUSE && keycode != STAT) e->key[keycode] = 1; keycode == 30 ? bmp_exporter(e, e->cam, e->arg.file) : 0; keycode == 33 ? yml_exporter(e, e->arg.file) : 0; keycode == 43 ? e->cam = e->cam->next : 0; keycode == 47 ? e->cam = e->cam->prev : 0; if (e->cam->selection) { keycode == 83 ? e->cam->selection->rot.x += 30 : 0; keycode == 84 ? e->cam->selection->rot.x -= 30 : 0; keycode == 86 ? e->cam->selection->rot.y += 30 : 0; keycode == 87 ? e->cam->selection->rot.y -= 30 : 0; keycode == 89 ? e->cam->selection->rot.z += 30 : 0; keycode == 91 ? e->cam->selection->rot.z -= 30 : 0; } keycode == MOUSE ? kswitch(&e->key[MOUSE]) : 0; keycode == STAT ? kswitch(&e->key[STAT]) : 0; keycode == 43 || keycode == 47 || keycode == 83 || keycode == 84 || keycode == 86 || keycode == 87 || keycode == 89 || keycode == 91 ? start_raytracing(e) : 0; return (0); }
main() { char name[64]; int pid, cmd; char c; while(1){ color = 0x0C; printf("----------------------------------------------\n"); pid = getpid(); printf("I am proc %d in U mode: running segment=%x\n", pid, getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kfork(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : c = kgetc(); putc(c); putc('\n'); putc('\r'); break; case 8 : kputc(); break; default: invalid(name); break; } } }
main() { char name[64]; int cmd; /* resetVideo();*/ while(1){ pid = get_pid(); printf("==============================================\n"); printf("I am task %d in Umode at segment=%x\n", pid, getcs()); show_menu(); printf("Command ? "); mgets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : get_pid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : mywait(); break; case 6 : myexit(); break; case 7 : ufork(); break; case 8 : myexec("/u2"); break; case 9 : sin(); break; case 10 : sout(); break; default: invalid(name); break; } } }
main(int argc, char *argv[]) { char name[64]; int pid, cmd, segment, i; while(1){ pid = getpid(); color = 0x000B + (pid % 5); segment = (pid+1)*0x1000; printf("==============================================\n"); printf("I am proc %din U mode: segment=%x\n", pid, segment); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9 : do_itimer(); break; default: invalid(name); break; } } }
main() { char name[64]; int cmd; int pid; while(1){ pid = getpid(); printf("==============================================\n"); printf("Das ist prozess %d im Umode segment=%x\n", pid, getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : mywait(); break; case 6 : myexit(); break; case 7 : ufork(); break; case 8 : myexec("/bin/u1"); break; case 9 : sin(); break; case 10: sout(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd; while(1){ pid = getpid(); color = 0x000A + (pid % 6); printf("----------------------------------------------\n"); printf("I am proc %d in U mode: running segment=%x\n",getpid(), getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd; color = 0x0F; while(1){ printf("----------------------------------------------\n"); pid = getpid(); printf("I am proc %d in U mode: running segment=%x\n", pid, getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : pid = kfork(); printf("fork returned: %d\n", pid); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : pid = exec(); printf("exec returned: %d\n", pid); break; default: invalid(name); break; } } }
main(int argc, char *argv[]) { int pid, cmd, i; char name[64]; ucolor = 0; clearScreen(UMODE); printf("enter main() : argc = %d\n", argc); for (i=0; i<argc; i++) printf("argv[%d] = %s\n", i, argv[i]); while(1){ pid = getpid(); color = ucolor ? ucolor:0x000B + (pid % 5);// avoid black on black baground cmd?resetCursor(UMODE):1; printf("----------------------------------------------\n"); printf("I am proc %din U mode: segment=%x\n", pid, (pid+1)*0x1000); show_menu(); printf("Command ? "); getCurPos(UMODE); printf(" \n"); setCurPos(ux_col,uy_row,UMODE); gets(name); clearScreenRegion(K_X_PRINT_OFFSET,80,U_Y_PRINT_OFFSET-1,24,UMODE); if (name[0]==0) continue; cmd = find_cmd(name); getCurPos(UMODE); setCurPos(K_X_PRINT_OFFSET,U_Y_PRINT_OFFSET,UMODE); switch(cmd){ case 0 : do_getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9 : ucolor = chcolor(); break; case 10: pipe(); break; case 11: pfd(); break; case 12: read_pipe(); break; case 13: write_pipe(); break; case 14: close_pipe(); break; default: invalid(name); break; } setCurPos(ux_col,uy_row,UMODE); } }
int main(int argc, char *argv[]) { char name[64]; int pid, cmd; int pd[2]; while(1){ printf("\n----------------------------------------------\n"); #ifndef _LAB_3_ printf("I am proc %d in U mode with ppid %d: running segment=%x\n",getpid(), getppid(), getcs()); #else printf("I am proc "); getpid(); printf(" in U mode: running segment=%x\n", getcs()); #endif #ifdef _SLEEPER_ while(1) { printf("PID: %d PPID: %d\n", getpid(), getppid()); sleep(5); return 0; } #endif show_menu(); printf("Command? "); gets(name); printf("\n"); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0: getpid(); break; case 1: ps(); break; case 2: chname(); break; case 3: kswitch(); break; case 4: wait(); break; case 5: ufork(); break; case 6: uexec(); break; case 7: exit(); break; case 8: pipe(pd); break; case 9: pfd(); break; case 10: uclose(); break; case 11: uread(); break; case 12: uwrite(); break; case 13: usleep(); break; default:invalid(name);break; } } }
int loop_hook(t_env *e) { e->tick.frame_start = clock(); move_translate(e); move_rotate(e); e->key[KP] || e->key[KM] || e->mouse.kp || e->mouse.km ? move_zoom(e) : 0; e->key[MOUSE] ? mouse_orientation(e) : 0; e->key[FI] ? kswitch(&e->cam->filter.invert) : 0; e->key[FG] ? kswitch(&e->cam->filter.gray_scale) : 0; e->key[FGM] ? e->cam->filter.gamma += 0.05 : 0; e->key[FGP] ? e->cam->filter.gamma -= 0.05 : 0; e->mouse.lmb ? object_select(e) : 0; object_move(e, e->cam->selection); object_mouse_move(e, e->cam->selection); object_mouse_rotate(e, e->cam->selection); e->key[DEL] ? object_delete(e, e->cam->selection) : 0; e->mouse.kp = 0; e->mouse.km = 0; e->mouse.lmb = 0; e->mouse.rmb = 0; expose_hook(e); e->tick.frame = (clock() - e->tick.frame_start) / (float)CLOCKS_PER_SEC; return (0); }
int kcinth() { u16 segment, offset; int a,b,c,d,r; segment = running->uss; offset = running->usp; a = get_word(segment, offset + 2*PA); b = get_word(segment, offset + 2*(PA+1)); c = get_word(segment, offset + 2*(PA+2)); d = get_word(segment, offset + 2*(PA+3)); switch(a) { case 0: r = getpid(); break; case 1: r = kps(); break; case 2: k = kchname(); break; case 3: r = kkfork(); break; case 4: r = kswitch(); break; case 5: r = kwait(b); break; case 6: kexit(); break; default: printf("invalid syscall %d\n", a); } put_word(r, segment, offset + 2*AX); }
main(int argc, char *argv[]) { char name[64]; int pid, cmd, segment, i; pid = getpid(); color = 0x000B + (pid % 5); // avoid black on black baground printf("enter main() : argc = %d\n", argc); for (i=0; i<argc; i++) printf("argv[%d] = %s\n", i, argv[i]); while(1){ pid = getpid(); color = 0x000B + (pid % 5); segment = (pid+1)*0x1000; printf("==============================================\n"); printf("I am proc %din U mode: segment=%x\n", pid, segment); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9: chcolor(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd; pid = getpid(); while(1){ color = 0x0000B + pid; printf("==============================================\n"); printf("\nIch bin Prozess %d in der U Weise: das laufen im Segment=%x\n", getpid(), getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); printf("find_cmd = %d\n", cmd); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9 : pipe(); break; case 10: pfd(); break; case 11 : read_pipe(); break; case 12 : write_pipe();break; case 13: close(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd; while(1){ pid = getpid(); color = 0x000B + (pid % 6); printf("----------------------------------------------\n"); printf("I am proc %d in U mode: running segment=%x\n",getpid(), getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); printf("find_cmd = %d\n", cmd); /*char *cmd[]={"getpid", "ps", "chname", "kmode", "switch", "wait", "exit", "fork", "exec", "pipe", "pfd", "read", "write", "close", 0};*/ switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9 : pipe(); break; case 10: pfd(); break; case 11 : read_pipe(); break; case 12 : write_pipe();break; case 13: close_pipe(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd, segment, i; pid = getpid(); color = 0x000B + (pid % 5); // avoid black on black baground while(1){ pid = getpid(); color = 0x000B + (pid % 5); segment = (pid+1)*0x1000; printf("==============================================\n"); printf("I am proc %din U mode: segment=%x\n", pid, segment); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : exit(); break; case 7 : fork(); break; case 8 : exec(); break; case 9: pipe(); break; case 10: pfd(); break; case 11: read_pipe(); break; case 12: write_pipe(); break; case 13: close_pipe(); break; default: invalid(name); break; } } }
main() { char name[64]; int pid, cmd; while(1){ printf("==============================================\n"); printf("\nIch bin Prozess %d in der U Weise: das laufen im Segment=%x\n", getpid(), getcs()); show_menu(); printf("Command ? "); gets(name); if (name[0]==0) continue; cmd = find_cmd(name); switch(cmd){ case 0 : getpid(); break; case 1 : ps(); break; case 2 : chname(); break; case 3 : kmode(); break; case 4 : kswitch(); break; case 5 : wait(); break; case 6 : die(); break; case 7 : ufork(); break; case 8 : uexec(); break; case 9 : chcolor(); break; default: invalid(name); break; } } }