/* 変数管理システム */
#include "var.h"
#include "astdio.h"
#include "amacro.h"

void VarDump(int base,VARSYS2 *var)
/* 変数領域ダンプ */
{
short flook=0,p;
unsint type;
long num;
unchar *vname;
	if (base&BIT15) {
		flook=1;
		base^=BIT15;
	}
	for (p=VTOP2;p<var->vpoint;p++) {
		/* 内容読みだし */
		vname=var->vwork[p].adrs; /* 変数名 */
		type =var->vwork[p].type; /* 型 */
		num  =var->vwork[p].num;  /* 数値 */
		
		/* 表示 */
		if (flook||(type&VTYPE)!=VTYPE-1) {
			prints(vname+(var->mode&BIT0)); tab();
			if (!(type&VKAKU)) { /* 確定 */
				/* 数値そのもの */
				PrintBase(num,10);
				if (base!=10) {
					/* 10進以外指定の時は同時表示 */
					printc('(');
					PrintBase(num,base+100);
					printc(')');
				}
				/* type */
				printc('[');
				PrintBase(type&VTYPE,10);
				printc(']');
			} else	prints("未確定");
			if (type&VDAI) prints("（再代入不可）");
			crlf();
		} /* VTYPE==VTYPE-1の変数は表示されない */
	}
}
