/*****************************************************************************/

#include <string.h>
#include <iocslib.h>
#include "defines.h"
#include "acdata.h"

/*****************************************************************************/
/* アドレス定数定義付け */

struct ADRS_CONST {
	const unchar *name;
	unint adrs;
} adrs_const[]={
	 {"RAM"   ,RAM}		/* RAM先頭アドレス */
	,{"GRAM"  ,GRAM}	/* GRAM先頭アドレス */
	,{"TRAM"  ,TPLANE0}	/* TEXT VRAM先頭アドレス */
	,{"SRAM"  ,SRAM}	/* SRAM先頭アドレス */
	,{"SPRAM" ,SPRAM}	/* スプライト先頭アドレス */
	,{"CGROM" ,CGROM}	/* ＣＧ−ＲＯＭ先頭アドレス */
	,{"ROM"   ,ROM}		/* システムＲＯＭ先頭アドレス */
	
	,{"GRAME" ,GRAME}	/* GRAM終了アドレス */
	,{"TRAME" ,TRAME}	/* TEXT VRAM終了アドレス */
	,{"SRAME" ,SRAME}	/* SRAM終了アドレス */
	,{"SPRAME",SPRAME}	/* スプライト終了アドレス */
	,{"CGROME",CGROME}	/* ＣＧ−ＲＯＭ終了アドレス */
	,{"ROME"  ,ROME}	/* システムＲＯＭ終了アドレス */
};
#define ACMAX	(sizeof(adrs_const)/(sizeof(unchar *)+sizeof(int)))

/*****************************************************************************/

int atoi4(unchar *str,int *num,int mode)
/* atoi3()+定数 */
{
unint i;
	if (strcmpi(str,"MLIMIT")==0) {
		/* メインメモリー最終アドレス */
		*num=B_LPEEK(MLIMIT)-1;
		return(0);
	}
	for (i=0;i<ACMAX;i++) {
		if (strcmpi(adrs_const[i].name,str)==0) {
			*num=adrs_const[i].adrs;
			return(0);
		}
	}
	return(atoi3(str,num,mode));
}

/*****************************************************************************/
