Please change the two lines in sys.c that use (int *) to use (UWORD *) or
similar. I overlooked this when compiling with MS VC 6 and causes the
resulting  floppy to not be able to boot as the wrong location is written
to (as int == DWORD instead of WORD).  And I'm likely to overlook it again
if I update to a newer version of SYS later.

    ((int *)newboot)[0x3C] = load_seg;
    ...
    /* put 0 for A: or B: (force booting from A:), otherwise use DL */
    bs->bsDriveNumber = drive < 2 ? 0: 0xff;
    ((int *)newboot)[0x2E] = load_seg;

I like the cleaned up command processing, though there is one
or two spots that need fixing:
    printf("%s: drive %c must be A:..Z:\n", pgm, *argv[(argc == 3 ? 2 : 1)]);
should probably be
    printf("%s: drive %c must be A:..Z:\n", pgm, argv[drivearg][0]);
and some of the tests seem to have redundant && !variable if tests
(both and bootonly).  Does this result in a size reduction or am I
missing some aspect of the test? 

(Forgive me if these are already pointed out / fixed outside current
 nightly tarball, as I haven't been following fd-kernel too closely.)

Thank you, 
Jeremy



[See http://www.fdos.org/bootdisks/autogen/source.zip if you want the
 source to my MSVC6 port of sys 3.1 for NT (2000/XP tested).  Because its all I
 need, it only properly supports floppies and requires NT, but should work
 more reliably under NT than the official DOS sys.  Source.zip may be
 large, so I can pull out winsys.c from it if desired.]
 



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to