This article is from the comp.sys.ibm.pc.hardware.video Frequently Asked Questions, by Michael Scott with numerous contributions by others. (v1.0).
This isn't really a hardware problem, but pops up often enough to justify an answer here. It occurs due to a limitation of the way that memory is allocated in the Program Manager (PM) application. Memory is allocated in 64kB chunks, and any given PM group has a maximum of 64kB to store the application and working directory paths for each application, icon positions and application icons. If the 64kB limitation wasn't bad enough, the program manager does something which causes a problem if you switch to a higher colour mode. Irrespective of the actual number of colours present in an icon, the Program Manager allocates enough memory for that icon _in the current colour mode_. I'll illustrate what this means with an example:
Since each icon is 32x32 pixels in size, a 256 colour pixmap (that's 8 bit, or one byte per pixel) would require 32x32x1 = 1024 bytes, so PM would allocate 1024 bytes for that icon. Given a maximum of 64kB of memory, this would limit us to something less than a total of 64 icons in a PM group (since some memory is used for storing the other info detailed above). If we switch to 24 bit colour mode, then PM will automatically allocate 32x32x3 (that's 3 bytes per pixel) = 3072 bytes _for each icon regardless of how many colours are actually in it_. If we have a large number of icons (more than about 20) within a single PM group, then PM won't have enough memory to store all the icon info. As a result, some icons appear black because there is no icon information stored for them in the PM.
Unfortunately, there is no work-around that I am aware of for this. The only solution is to break your PM groups into smaller ones which contain fewer icons.
 
Continue to: