#define MEMF_CLEAR   (1L<<16)	/* AllocMem: NULL out area before return */

extern struct ExecBase * SysBase;

static __inline void*
AllocVec (unsigned long byteSize,unsigned long requirements)
{
  register void *_res  __asm("d0");
  register struct ExecBase *a6 __asm("a6") = SysBase;
  register unsigned long d0 __asm("d0") = byteSize;
  register unsigned long d1 __asm("d1") = requirements;
  __asm __volatile ("jsr a6@(-0x2ac)"
  : "=r" (_res)
  : "r" (a6), "r" (d0), "r" (d1)
  : "a0","a1","d0","d1", "memory");
  return _res;
}

void *calloc(unsigned long Anz)
{
	register unsigned long *p=0;
	if(!Anz)Anz=1;

	p=AllocVec(Anz,MEMF_CLEAR);
	return (void *)p;
}
