#include"mbasic.h"

#define MAX_STRINGS		1024

static char * __strtab[MAX_STRINGS];

void InitStrings(void)
{
 int i;
 for(i=0;i<MAX_STRINGS;i++)
  __strtab[i]=NULL;
 RegisterString("Compiled with MBASIC. Author: Jarek Pelczar");
}

int RegisterString(char * s)
{
 int i;
 for(i=0;i<MAX_STRINGS;i++)
 {
  if(!__strtab[i])
  {
   __strtab[i]=malloc(strlen(s)+1);
   memcpy(__strtab[i],s,strlen(s)+1);
   return i;
  }
 }
 Error("Internal error: Grow MAX_STRINGS in file %s\n",__FILE__);
}

void EmitStrings(void)
{
 int i;
 for(i=0;i<MAX_STRINGS;i++)
 {
  if(__strtab[i])
  {
   _emit("_LC%u:\n",i);
   emit("db \"%s\",0\n",__strtab[i]);
  }
 }
}
