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

void var_dump(int pmode,VARSYS *var)
/* 変数領域ダンプ */
{
int j,flook=0,len;
long p=VTOP,num;
unchar md;
	if (pmode&BIT15) {
		flook=1;
		pmode&=(~BIT15);
	}
	for (j=0;j<var->vlots;j++) {
		/* 内容読みだし */
		len=var->vwork[p++]; /* 変数名長 */
		md =var->vwork[p++]; /* 変数type */
		num=ctol(&var->vwork[p]); /* 数値 */
		p+=LLONG;
		
		/* 表示 */
		if (flook||(md&VTYPE)!=VTYPE-1) {
			prints(&var->vwork[p]); tab();
			if (!(md&VKAKU)) { /* 確定 */
				/* 数値そのもの */
				PrintBase(num,10);
				if (pmode!=10) {
					/* 10進以外指定の時は同時表示 */
					printc('(');
					PrintBase(num,pmode+100);
					printc(')');
				}
				/* type */
				printc('[');
				PrintBase(md&VTYPE,10);
				printc(']');
			} else	prints("未確定");
			if (md&VDAI) prints("（再代入不可）");
			crlf();
		} /* VTYPE==VTYPE-1の変数は表示されない */
		p+=(len+1);
	}
}
