Hi!

     Next portion of patches for config.c (in my local tree):

- bugfix: umb_init(): there was no checks if size of captured block is less
  than 2 paragraphs.
- bugfix: umb_init(): when joining adjacent blocks, umb_base_seg, umb_start
  and umb_max was not adjusted if they are equal to next joined block.
- fix: umb_init(): when joining adjacent blocks, UMB_top was not adjusted
  if it equal to end of previous block; this force to use when loading
  drivers only part of given UMB.
- bugfix: umb_init(): umb_start+UMB_top initialized as end of (first,
  largest) block and used as end address when loading drivers, but if this
  block is not furthest, then umb_start+UMB_top was overlap MCB of hole
  block before next UMB.
- bugfix: umb_init(): when joining next adjacent block to current block,
  size of current block was maked greater than required by 1.
- bugfix: umb_init(): when new captured UMB block is beyond of furthest
  previously cuptured block (umb_max) and first byte in last paragraph
  of umb_max block contains 'M', prev_mcb() was walk after umb_max.

There is one more issue: when XMS provider returns UMB at A000, then FreeDOS
(should) incorrectly updates MCB chain. Unfortunately, I can't check this
yet: looks like MS-EMM386 with I=A000-... adds this block to base memory,
and this forced FD to wrongly make final MCB in some other place.




-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to