Hi! 25-Мар-2004 00:20 [EMAIL PROTECTED] (Bart Oldeman) wrote to [EMAIL PROTECTED]:
> From Lucho (and I think Arkady had this as well at some point): > save 33 bytes by eliminating a switch for memory/UMB access modes. Yes, it was. > case 0x01: > + if ((lr.BL & FIT_U_MASK) > FIRST_FIT_U || /* 0xc0, 0x80 */ > + (lr.BL & FIT_MASK) > LAST_FIT) /* 0x3f, 0x02 */ > + goto error_invalid; > + mem_access_mode = lr.BL; > break; Unlike this code, my code wasn't reject 0xC0 (HIGH_MASK), but this code also may be simplified: ______________O\_/_________________________________\_/O______________ if (lr.BL >= HIGH_MASK || /* 0xc0 */ (lr.BL & FIT_MASK) > LAST_FIT) /* 0x3f, 0x02 */ _____________________________________________________________________ O/~\ /~\O where in mcb.h was defined: ______________O\_/_________________________________\_/O______________ #define HMASEG 0xFFFF typedef enum { LARGEST = -1, FIRST_FIT = 0, BEST_FIT = 1, LAST_FIT = 2, ALLOC_HIGH = 0x40, ALLOC_HIGH_LOW = 0x80, HIGH_MASK = ALLOC_HIGH | ALLOC_HIGH_LOW, FIT_MASK = ~HIGH_MASK, LOW_FIRST_FIT = 0, /* low memory first fit */ LOW_BEST_FIT = 1, /* low memory best fit */ LOW_LAST_FIT = 2, /* low memory last fit */ HIGH_FIRST_FIT = 0x40, /* high memory first fit */ HIGH_BEST_FIT = 0x41, /* high memory best fit */ HIGH_LAST_FIT = 0x42, /* high memory last fit */ HIGH_LOW_FIRST_FIT = 0x80, /* high, then low mem first fit */ HIGH_LOW_BEST_FIT = 0x81, /* high, then low mem best fit */ HIGH_LOW_LAST_FIT = 0x82 /* high, then low mem last fit */ } ALLOC_STRATEGY; _____________________________________________________________________ O/~\ /~\O ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel