int main(void){ struct virtual_machine * vm; unsigned int output; unsigned char c; struct termios * original = terminal_setup(); vm = vm_create(data_start, data_end, data); while(!is_halted(vm)){ if(vm_getc(vm, &output)){ putchar((int)output); fflush(stdout); } if(read(STDIN_FILENO, &c, 1) > 0){ vm_putc(vm, c); } step(vm); } vm_destroy(vm); tcsetattr(STDOUT_FILENO,TCSANOW, original); tcsetattr(STDOUT_FILENO,TCSAFLUSH, original); free(original); return 0; }
int main(void){ struct virtual_machine * vm; unsigned int output; unsigned char c; struct termios * original = terminal_setup(); vm = vm_create(data_start, data_end, data); printf("Kernel image has been loaded. All input is now being handled by the emulator.\n"); printf("Press 'q' to quit.\n"); while(!is_halted(vm)){ if(vm_getc(vm, &output)){ putchar((int)output); fflush(stdout); } if(read(STDIN_FILENO, &c, 1) > 0){ vm_putc(vm, c); } step(vm); } vm_destroy(vm); tcsetattr(STDOUT_FILENO,TCSANOW, original); tcsetattr(STDOUT_FILENO,TCSAFLUSH, original); free(original); return 0; }
int main(int argc, char **argv) { struct stat rcstat; parse_command_line(argc, argv); terminal_setup(); if (!no_init) init(); history_restore(".haltest_history"); fd_stack[fd_stack_pointer++] = 0; /* Register command line handler */ poll_register_fd(0, POLLIN, stdin_handler); if (stat(".haltestrc", &rcstat) == 0 && (rcstat.st_mode & S_IFREG) != 0) process_file(".haltestrc"); poll_dispatch_loop(); return 0; }