test$ cat testfail.c #include #include #include void main(void) { char __far * pp = _fmalloc(64UL * 1024UL); long ii; for (ii = 0; ii < (64UL * 1024UL); ++ ii) { pp[ii] = 0; } printf("%u\n", !!pp); } test$ ia16-elf-gcc testfail.c -li86 -o testfail.exe testfail.c: In function ‘main’: testfail.c:7:30: warning: large integer implicitly truncated to unsigned type [-Woverflow] char __far * pp = _fmalloc(64UL * 1024UL); ^~~~ test$ dos testfail About to Execute : testfail 1 dos mem corrupt, first_mcb=02d2 prev 149a:0000|4d 9a 04 00 00 48 49 47 00 00 53 57 49 54 43 48 MÜ...HIG..SWITCH notMZ149b:0000|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ PANIC: MCB chain corrupted System haltedTerminated with signal 126 test$ cat test.c #include #include #include void main(void) { char __far * pp = _fmalloc(64UL * 1024UL - 1); long ii; for (ii = 0; ii < (64UL * 1024UL); ++ ii) { pp[ii] = 0; } printf("%u\n", !!pp); } test$ ia16-elf-gcc test.c -li86 -o test.exe test$ dos test About to Execute : test 1 test$