Mail Archives: djgpp/1992/08/13/17:03:12
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 -