X-Authentication-Warning: delorie.com: mailnull set sender to opendos-bounces using -f Message-ID: <000b01c1ba4f$d840e980$c03dfea9@atlantis> From: "Matthias Paul" To: References: <5 DOT 1 DOT 0 DOT 14 DOT 0 DOT 20020219162926 DOT 009df140 AT mail DOT dfsi DOT net> Subject: Re: cant copy! Date: Wed, 20 Feb 2002 04:33:19 +0100 Organization: University of Technology, RWTH Aachen, Germany MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id g1KLHB925076 Reply-To: opendos AT delorie DOT com On 2002-02-19, "Kwelella" wrote: > tell me please,why I can make spare install disks from a directory on my > hard drive for DRDOS 7.3 using xxcopy and they boot just fine. Well, normally, when you create boot floppies you have to use the SYS utility or the FORMAT /S option. This will copy the kernel files IBMBIO.COM and IBMDOS.COM as well as the shell COMMAND.COM to the floppy and write a boot sector that is compatible with this operating system. If you just use COPY, XCOPY or other copy tools, you will only be able to copy the files, but not update the boot sector. It appears the boot sector on your floppies was already DR-DOS compatible when you used XXCOPY to copy the files onto the disk. Maybe you have been using the DR-DOS FORMAT to format the floppies? > But when I do the exact same thing trying to make msdos 6.22 disks ,they > wont boot! Yes, the MS-DOS and DR-DOS boot sectors are not compatible. The boot sector is almost always specific to the corresponding operating system it boots. There are several reasons: - The boot sector passes certain register values to the kernel when it finally jumps into the code it has loaded. These register values differ between most operating systems. - MS-DOS and DR-DOS use different file names for the kernel files. For MS-DOS they are IO.SYS for the BIOS and MSDOS.SYS for the BDOS kernel. DR-DOS and PC DOS use IBMBIO.COM and IBMDOS.COM instead. So the boot sector may look for the wrong file(s) to load. - The DR-DOS boot sector loads the whole IBMBIO.COM file into memory before it executes it. It does not care at all about the IBMDOS.COM file, which is loaded by IBMBIO.COM. The MS-DOS and PC DOS boot sector, however, ensures that both kernel files exist on the disk, and then only loads the first two (or one???) sector(s) of the BIOS file (IO.SYS or IBMBIO.COM). This contains a small stub loader, which loads the remainder of the file itself. These are only small issues, that could be easily addressed in a slightly enhanced issue of the DR-DOS boot sector, so that it would be compatible with MS-DOS/PC DOS kernel files as well. However, thereīs another fundamental limitation in the way, how MS-DOS and PC DOS boot up, which will cause your attempts to boot MS-DOS after just copying the kernel files to fail - unless you have copied these files as the first two files to the disk (even then you could not be 100% sure that it will always work). The problem is, that MS-DOS/PC DOS requires the kernel files to be located at specific locations at the start of the disk, and the files must be continous, not fragmented. The MS-DOS/PC DOS boot sector has no "intelligence" to actually mount the disk and walk through its filesystem, so it tries to locate the files at certain locations by directly peeking the FAT data structures. The MS-DOS/PC DOS SYS utility will ensure that these conditions are met, but a simple copy operation has no direct control over where and how the files are actually stored on the disk, itīs a logical rather than a physical copy. This scenario is a bit relaxed in more recent issues of MS-DOS/PC DOS but still holds true in general. The DR-DOS boot sector is a bit more "intelligent", and will find the two kernel files as long as they are logically stored in the root directory. Their physical location on the disk, and if they are fragmented or not, is donīt care for the DR-DOS boot sector. Hence, you can just copy the kernel files to the disk (even with a simply COPY), and as soon as the boot sector is a DR-DOS sector, it will find and load them. Of course, it is difficult to put all this into just 512 bytes, the size of a single sector, but this is a major convenience improvement if you have to set up a DR-DOS system, and it is also the key for the DR-DOS multi-OS LOADER utility to work. The MS-DOS kernel files must reside on specific locations, but the DR-DOS files can be anywhere, so you donīt have to physically swap them around each time you boot the other OS. Also, it allows to upgrade a DR-DOS system simply by copying the kernel files over the old ones, no need for SYS, no difficult setup procedures as required for MS-DOS/PC DOS. You can even have multiple DR-DOS kernel files under different file names stored on the same drive, and LOADER will switch between them according to the file names listed in the BOOT.LST file. Hope it helps, Matthias -- ; http://www.uni-bonn.de/~uzs180/mpdokeng.html; http://mpaul.drdos.org