On Sat, 28 Jul 2018 11:49:42 -0500, David McMackins wrote:
> Is there a way to allocate a buffer in OpenWatcom that is larger than
> 64k?
Sure. Either use XMS/EMS, or rely on the "huge model" kludge.
> I'm currently trying to stay within the compact memory model, but
> even if I compile for huge memory model, I'm getting an out of memory
> error for trying to allocate about 80k for a buffer.
Either your code is bad or you truly do not have any available block of
80K contiguous conventional RAM.
I tested it right now with the code below, and it works as expected
(prints "success!"):
/* compile: wcl -0 -mh -os -lr test.c */
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *buf;
buf = malloc(81920l);
if (buf == NULL) {
printf("oops\n");
} else {
buf[80000l] = '!';
buf[80001l] = 0;
printf("success%s\n", buf + 80000l);
free(buf);
}
return(0);
}
> My machine has 128M
> of memory, so I'm not actually running out of memory.
That is irrelevant, since we are talking conventional memory here.
> This code works
> fine under DJGPP, so I know my hardware is capable.
Apples and oranges. DJGPP is protected mode, while you are using real
mode.
Mateusz
--
FreeDOS is present on the USENET, too! alt.os.free-dos
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel