Example #1
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);

	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;
}
Example #2
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;
}