/* Check4Mem by Jonathan Potter Dec 88 */

/* Check4Mem v2 by Jonathan Potter Jul 89 */

#include <exec/memory.h>

main(argc,argv)
int argc;
char *argv[];
{
	int chipavail=0,fastavail=0,required=0,i;
	BOOL chip=FALSE,fast=FALSE,segment=FALSE;
	char string1[20], string[20];

	strcpy(string1,"You need at least ");

	for (i=2;i<argc;i++) {
		if (strcmp(argv[i],"-f")==0) fast=TRUE;
		if (strcmp(argv[i],"-c")==0) chip=TRUE;
		if (strcmp(argv[i],"-s")==0) segment=TRUE;
	}

	required=atoi(argv[1]); /* Value to test for */
	chipavail=AvailMem(MEMF_CHIP|MEMF_PUBLIC)>>10;
	fastavail=AvailMem(MEMF_FAST|MEMF_PUBLIC)>>10;
	printf("\x9b;33mCheck4Mem v2 \x9b;0;3m(c) 1989 Jonathan Potter\x9b;0m\
  FAST:%d CHIP:%d TOTAL:%d\n",fastavail,chipavail,fastavail+chipavail);

	if (segment) {
		chipavail=AvailMem(MEMF_CHIP|MEMF_PUBLIC|MEMF_LARGEST)>>10;
		fastavail=AvailMem(MEMF_FAST|MEMF_PUBLIC|MEMF_LARGEST)>>10;
		strcpy(string,"segmented ");
	}

	if (chip) strcat(string,"CHIP RAM.");
	else if (fast) strcat(string,"FAST RAM.");
	else strcat(string,"RAM.");

	if ((chip && chipavail<required) || (fast && fastavail<required) ||
		(!chip && !fast && chipavail+fastavail<required)) {
			printf("%s%dK of %s\n",string1,required,string);
			exit(5);
	}
	exit(0);
}
