Hi Ralph,

Not sure if I explained why just "walking the MCB chain" is not sufficient to 
locate the driver during the meeting.

When the config sys includes "DOS=UMB” the upper memory blocks are part of the 
MCB chain. If that is option is not included, then those blocks are not linked 
to the chain. (Un)Linking can be performed using INT 0x21,AH=0x58. 

https://fd.lod.bz/rbil/interrup/dos_kernel/2158.html 
<https://fd.lod.bz/rbil/interrup/dos_kernel/2158.html>

However, based on what memory management drivers are loaded and config 
settings, (un)linking may not be possible and allocating a UMB may not succeed. 
 If this is the case, the driver will try to allocate a UMB through the XMS 
memory manager. The memory may then be allocated but not part of the MCB chain 
because DOS itself is not managing that region of memory. 

If that fall-back allocation is successful, "walking the MCB chain" will not 
locate the driver. It is a rare combination of system configuration options 
that can permit the fall-back memory allocation to be successful. It would be 
easier to not go through the extra steps and only allocate memory when DOS is 
managing that region. 

I do not recall at present the exact configuration of options and drivers that 
are required, that will fail to allocate the memory through DOS but are 
successful when directly using the XMS driver. I can not seem to duplicate that 
result at present. I should have made notes on it.

The UMB test program can demonstrate most of that stuff. However, it does not 
perform the fall-back of using the XMS manager to try and allocate memory.

https://fd.lod.bz/redist/memory/ <https://fd.lod.bz/redist/memory/>

On a side note, once I determine the best interrupt hook, It would be faster to 
just call that interrupt function to see if it is loaded. That could also 
provide an “API” for other programs to easily write to the Log and perform 
other interactions with the driver. 

:-)

Jerome
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to