delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/08/13/17:03:12

Date: Thu, 13 Aug 92 15:06:35 CDT
From: "George Jetson" <pynq AT midway DOT uchicago DOT edu>
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Question about virtual memory usage

I am having trouble getting virtual memory to work.  I think it
is only using real memory.

Here is a program:

	struct thing {
		char key[12];
		char *text;
		} *things;

	main(argc,argv)
	char **argv;
	{
		int n,i;
		char s[512];

		if (argc != 2 ||
		   !(things = (struct thing *) calloc(n = atoi(argv[1]),
			sizeof(struct thing))))
				puts("Arg Error or malloc error"),
				exit(1);
		printf("Allocated %d things.\n",n);

(with all the appropriate #include's ahead and more stuff after)

Anyway, I compile this with DJGPP (the latest version) and try running
it with various parameters (The single arg is the number of "things" to
allocate - each thing is 16 bytes)

I find that the max that you can allocate is basically available
extended mem/16.  Even though it opens a aging file (I have GCCTMP set
accordingly), it doesn't seem to use it.

Worse, the error is not caught.  The whole program blows up, as shown
below:

	(D:\DJGPP\TEST - <1>) go32 a.out 300000
	d:/djgpp/bin/go32.exe version 1.07 Copyright (C) 1991 DJ Delorie
	Error: out of conventional memory

	(D:\DJGPP\TEST - <1>)

(Tests were done using QEMM, so memory was actually VCPI type mem)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019