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