Exemplo n.º 1
0
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);
		}
	}
Exemplo n.º 2
0
/*
 *      サブCPU
 *      実行
 */
void FASTCALL
subcpu_exec(void)
{
	sub_exec();
}