This is from my original posting to the Windows, OS/2 and DOS groups.. but
someone suggested "Try Linux", so I'm asking you people too...
"For it is said, go not to the Usenet for advice; for it will say both yes
and no, and quite a few things you can't relate to the actual question" -
Ok knowing the above, I'm here anyway, and this time money will be spent on
the results. Please people, I need information, not mere opinions.
We are about to embark on several large projects which require real-time
image processing. We don't have an extremely large budget so Sun systems are
out, but PCs are in, as long as the image grabber isn't too expensive [like
US$3000] and the primary developing platform will be C.
I need to be able to directly manipulate memory at a specific high memory
location, for example at 11 meg. This memory is the card memory of a image
grabber. Presently, to the best of my knowledge, this is physically
impossible under DOS.
The images will all be about 256k to 380k in size, and need to be globally
addressable all the time: IE I need to be able to access pixel at (0,0) and
at (767,255) without having to swap memory about.
My options are:
DOS: Use DPMI or some such extended memory manager to bring the memory to
conventional space, manipulate it, and use same manager to put the memory
back.. Are there any 32 bit protected mode DOS compilers?
CONS: Slow. Very slow.
Windows: I have no idea. Was told to use Selectors, but could never get them
to correctly access the memory in question.
CONS: Slow. 16 bit. [Yeah, yeah, scream all you like about win32s.. How do I
access high memory directly [if I know the linear address] in win32s?
OS/2: Again, I have no idea. How do I go about accessing a known linear
address in OS/2?
LINUX: No info. Code fragments on how I'd go about it?
CONS: Machine cannot run any Windows apps? [Is this a problem, probably not]
I'm in favour of using OS/2 because I believe if it can allow me to access this
physical memory directly, ie by making a char pointer point to it, then I'll
be able to take advantage of an up and running 32 bit OS to access the whole
image and several buffers. But I have no solid info on how to go about doing
this in OS/2.
I'll be writing my own drivers, if need be, though cards under consideration
are the Creative Labs SE200 [SE100?] video blaster, and similar. The DT 3851
card, while nice, VERY NICE, is also very pricey.
So if you all out there could show me how I'd go about accessing 400k images
on the card's own memory in C under your favourite platform [DOS protected
mode, Windows, Win32s, OS/2 PM, OS/2 native], I'll then look at the platform
and method and make a decision [taking into account whatever other information
Other hardware platforms are also acceptable options, but we'll be writing
our own applications.
Simple, isn't it?
This is not mine, I had nothing to do with it.| #include <std_disclaimer.h>
Kevin Meyer, Plasma Physics Research Institute|Everyone knows the war is over
University of Natal, Durban, South Africa | and the good guys lost - LC.