void main () { err_t err; reg_t regs [REG_MAX]; context_t * context; char_t token [TOKEN_LEN_MAX]; byte_t len; context = (context_t *) regs; // Startup banner print_char ('P'); print_char ('T'); print_char ('1'); print_char ('.'); print_char ('1'); print_char (13); // carriage return print_char (10); // new line while (1) { err = scan_token (token, &len); if (err == E_OK) { if (!len) break; switch (token [0]) { case 'R': if (len != 2) { err = E_LEN; break; } err = reg_read (regs, token [1]); print_val (context->val); break; case 'W': if (len != 2) { err = E_LEN; break; } err = reg_write (regs, token [1]); break; case 'X': if (len != 2) { err = E_LEN; break; } err = sub_exec (regs, token [1]); break; default: if (len > 4) { err = E_LEN; break; } err = val_write (regs, token, len); } } print_stat (err); } }
/* * サブCPU * 実行 */ void FASTCALL subcpu_exec(void) { sub_exec(); }