I think once you got to a flat 32 bit address space and more than 1mb of memory, C starts to make more sense.
I think once you got to a flat 32 bit address space and more than 1mb of memory, C starts to make more sense.
There have been mixed memory models and you could go crazy with near and far to break out of the limits of the easy memory models.
Most of the time it was just a mater of picking a suitable memory model for your code and forget about near/far though. Not so different than today.
IIRC, with the tiny model you could often compile those to .COM files where MS-DOS would pick a free segment, load the file to the 0x100 offset, set all the segment registers to it, set the stack pointer to 0x0, and jump to the start at 0x100. Super simple (not even an executable header)!
http://alexfru.narod.ru/os/c16/c16.html
But indeed, we were all glad when the 32bit flat model was introduced with the 386.