Hi!

12-Мар-2004 13:29 [EMAIL PROTECTED] (junk) wrote to freedos-devel
<[EMAIL PROTECTED]>:

j> Scanning for EPROMS:
j>                 uchar far *pmem = MK_FP(mem,0);
j>                 if ( pmem[0] != 0x55u || pmem[1] != 0xaau)

        if (*(word far*) MK_FP (mem,0) != 0xAA55)

j> -               romsize = pmem[2] / 2;
j> +*****
j>                 if (pmem[2] == 0)
j>                         romsize = 2;            /* there was a valid EPROM
j> signiture !! */
j>                 else
j>                         {
j>                                                 /* By definition, EPROMS are
j> located
j>                                                    on 2K boundaries.
j>                                                    so in any case, the search
j> pointer
j>                                                    must remain 2K-aligned
j>                                                 */
j>                         romsize = ((uint)pmem[2] + 3) / 4 * 2;
j>                         }
j> +*****

        romsize = *(byte far*) MK_FP (mem, 2);
        /* now romsize contains ROM size in 512-byte pages */

        if (romsize == 0)
          romsize = 1; /* there was a valid EPROM signiture !! */

        /* By definition, EPROMS are located on 2K boundaries.
           so in any case, the search pointer must remain 2K-aligned
        */
        romsize = ((romsize - 1) / 4u + 1) * 2u;
        /* now romsize contains size of ROM in kbytes,
           rounded up to 2k boundary (2k, 4k, etc).
        */

If you wish to count romsize in 512-byte pages, then last align expression
should/may be changed so:

        romsize = (romsize + 3u) & ~3u;
        /* now romsize contains size of ROM in 512-byte pages,
           rounded up to 2k boundary (4 pages, 8 pages, etc).
        */




-------------------------------------------------------
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-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to