Here's another attempt to clarify the situation with memory capabilities
on PCs. Keep in mind that I'm not a PC guru.
Windows 3.1 can cope with a maximum of 256 megabytes of RAM and another
256 megabytes of swap space. (Windows 3.0 has a 16 megabyte limit. LabVIEW
requires Windows 3.1.)
ISA machines can have more than 16 megabytes of RAM, but there's a
limitation in the ISA DMA controller. You can only DMA to/from the low 16
megabytes of RAM. NI has a dma driver (dll, I presume) that copes with this
limitation by allocating a DMA buffer that's in the low 16 megabytes of RAM
that's used when an application is above 16 meg. Therefore, you shouldn't
have to worry about this limitation on ISA machines.
Windows 3.1 has a memory manager that doesn't like to deal with chunks of
memory larger than 16 megabytes. We use DPMI (Dos Protected Mode Interface)
to allocate a single large (possibly > 16 megabytes) block of memory in a flat
32-bit universe, and we use our own memory manager on top of that. Therefore,
LabVIEW for Windows can in fact use more than 16 megabytes of memory, and in
fact can allocate individual arrays larger than 16 megabytes. We've tried it.
Brian