Message-ID: <000b01c1660b$c3616d20$027efea9@atlantis> From: "Matthias Paul" To: References: <200111041428897 DOT SM00968 AT dfsi DOT net> <056f01c16575$ee3cb720$41e0de89 AT RESNETBJ1084> Subject: Re: DCONFIG.SYS, LOADER, and other DRDOS boot enhancements Date: Mon, 5 Nov 2001 15:58:12 +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 fA5F9MR20933 Reply-To: opendos AT delorie DOT com On 2001-11-04, Ben A L Jemmett wrote: > Hmm... I seem to recall the DCONFIG/AUTODOS7 used to be used when > dual-booting, but perhaps that changed since I last installed OpenDOS > (as it was then; 7.02 uses CONFIG.SYS/AUTOEXEC.BAT on my machine). There have been some slight changes, Ben, but the general mechanism is still the same as in all versions of DR DOS. When a file DCONFIG.SYS exists, it will take precedence over CONFIG.SYS. This even worked with DR DOS 3.31 and is still the case with 7.05. In addition to this, my OpenDOS 7.02 ALPHA kernels, Calderaīs OpenDOS 7.02 BETA 2 & 2A, and the DR-OpenDOS 7.02 release also supported ODCONFIG.SYS which worked in the same way, that is, the existance of ODCONFIG.SYS overrides DCONFIG.SYS. This was removed again in the process of the name change back to DR-DOS 7.02. (However, some issues of IBMBIO.COM and SYS.COM have a name extension for DRCONFIG.SYS now, but not the shipped 7.02/7.03 binaries.) Itīs interesting to note, that FreeDOS has a similar extension for the FDCONFIG.SYS filename. ;-) The default name of the AUTOEXEC.BAT file has always been just this. You can specify a different file name with the COMMAND.COM /P:filename.ext[;password] option (this works at least since DR DOS 6.0+), and since the primary command processor is usually loaded from within [D]CONFIG.SYS, this option is usually found in a SHELL= statement like: SHELL=c:\drdos\command.com /MH /E:512 /P:autodos7.bat Note, that the DR-DOS COMMAND.COM does not allow to specify a *path* with /P, only a *filename*, while 4DOS allows to give a full path to the batch file, so it is not necessary to store this in the root directory. However, in contrast to 4DOS, which only allows .BAT or .BTM as valid file extensions, the DRDOS COMMAND.COM accepts any file extension for the batch file, so /P:autoexec.703 works fine if AUTOEXEC.703 is a normal batch file. (Donīt try to run non-ASCII scripts using this option! ;-) So, the normal multi-boot configuration with LOADER (as automatically selected and set up by the DR-DOS INSTALL/SETUP on a machine which has Windows 9x/SE/ME installed) is simply to provide a DCONFIG.SYS file and in there have a SHELL= line refering to AUTODOS7.BAT. Since MS-DOS/PC DOS do not know of any of these extensions, they continue to use the CONFIG.SYS and AUTOEXEC.BAT files. Now, forcing DRDOS to use CONFIG.SYS is as simple as removing or renaming the DCONFIG.SYS file (and adapting the CONFIG.SYS file to meet the DR-DOS criteria, of course). QEMMīs OPTIMIZE does not know about them, so this does not directly help with "cyborg"īs problem, but since you have mentioned the [D]CONFIG.SYS CHAIN= directive already, Iīd like to explain this as well: The complete DR DOS 5.0+ syntax is: CHAIN [=] filespec[;password] which will switch the execution of the current CONFIG.SYS file to the specified new file (already parsed stuff will not be ignored!), so you can daisy-chain multiple configuration files. Note, that I wrote file*spec*, not file*name*, as you can optionally give a drive letter and/or path to the configuration file, and you can also specify a different file extension. It is important to know, that chaining will discard any open return addresses on the SWITCH=/GOSUB= stack, that is, you cannot return to the old file using the RETURN= directive (unless you chain back using labels, see below). If the specified file does not exist, the parser will continue to execute the current configuration file. DR-DOS 7.02+ adds the following syntax enhancement: CHAIN [=] filespec[;password][,label] so that the execution of the new file optionally starts at the specified label similar as if a GOTO [=] [label] directive would have been executed just after switching to the new file. If the label does not exist the parsing of the configuration file(s) is finished, if no label is specified the last label in the corresponding file is assumed. (Unfortunately, a slight bug in 7.02 made the CHAIN= directive semi-non-functional in this release, however the later 7.02 updates and the 7.03 release do not suffer from this bug.) Note the interesting coincidence with the Datalight ROM-DOS 6.22 CONFIG.SYS directive NEWFILE=filespec which appears to work exactly the same as DR DOS 5.0+ CHAIN=... ;-) > Anyway, you could try opening IBMBIO.COM in a hex editor and > changing references to DCONFIG.SYS to CONFIG.SYS followed by > a NULL (0); that might make it look at CONFIG.SYS; then open > COMMAND.COM and change AUTODOS7 to AUTOEXEC. Be sure to keep > backups of the files though because you'll want to swap them > back if something doesn't work as expected. While it is possible to patch these filenames, please donīt do it this way. Certain parts of the DCONFIG.SYS string in IBMBIO.COM are sensitive to their position in the file, so you must not move the string - even not within the placeholder. If you want IBMBIO.COM to ignore the DCONFIG.SYS file, just rename the DCONFIG.SYS file to, for example, CONFIG.SYS. If you really want to disable this feature, then replace the "D" in the IBMBIO.COM image by a letter that is not matched as a filename, say "X". There is no string "AUTODOS7.BAT" in COMMAND.COM. Just change the /P parameter in the corresponding SHELL= line in the corresponding CONFIG.SYS file to the desired value. However, I think, what you are referring to is another DRDOS feature to modify the name of the initial configuration files even beyond the [D]CONFIG.SYS feature. This also wonīt help "cyborg", but since this might be interesting to some of the newer DRDOS users, who donīt know of this possibility, Iīll explain it again here: The DR DOS SYS.COM command has an option /DR:ext to specify the file extension of the initial [D]CONFIG.SYS file to be different from ".SYS". (This works with the DR DOS 6.0+ SYS.COM and for DR DOS 5.0+ kernel files.) For these issues, the specified extensions must be a 3-character extension. Assuming you are at the A:\> prompt booted from DR-DOS, if you execute for example: SYS a:\ c: /DR:703 the DRDOS SYS will write a new boot sector to C:\ which will load IBMBIO.703 instead of IBMBIO.COM, and the IBMBIO.703 file that is written to C:\ will be patched to load a file IBMDOS.703 rather than IBMDOS.COM, and it will try to parse [D]CONFIG.703 instead of [D]CONFIG.SYS. This way you can have more than one parallel DRDOS installation residing on the same partition and you only have to change the boot sector to load different kernels. It also allows a parallel installation of DRDOS with IBMīs PC DOS which uses the same IBMBIO.COM/ IBMDOS.COM file names for the kernel files. The DR-DOS multi-boot LOADER utility makes this configuration much easier to set up as you do no longer need to patch the boot sector any more, but just add lines to the BOOT.LST configuration file (this filename is the default filename and can be changed as well when invoking LOADER - see LOADER /? for possible configuration options). For example, BOOT.LST normally contains a line like: IBMBIO.COM S [5] Caldera DR-DOS 7.03 to start the IBMBIO.COM file using boot method "S" on F2 or after a delay of five seconds. If you were using DR DOS 6.0, Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02/7.03 at the same time, the file might look like this: IBMBIO.600 S DR DOS 6.0 IBMBIO.700 S Novell DOS 7 IBMBIO.701 S OpenDOS 7.01 IBMBIO.702 S DR-DOS 7.02 IBMBIO.703 S [5] DR-DOS 7.03 (default) You can just copy/rename the files into the root of C:\ but they will all continue to load IBMDOS.COM and search for [D]CONFIG.SYS. Although the kernel files are interchangable to some extend (early Novell DOS 7 and OpenDOS 7.01 IBMBIO.COM and IBMDOS.COM files, or later Novell DOS 7 and DR-DOS 7.02/ 7.03 files can be combined), this will probably not be the desired effect in most cases. Using the SYS /DR:ext option you can have different configuration kernel and configuration files for each of them. In case you want them all to execute the same general DRDOS style "CONFIG.SYS" file, you could just create dummy files {D]CONFIG.600/700/701/702/703 which contain a single line like: CHAIN DCONFIG.SYS Well, while this method already worked fine in general, it was more difficult to set up than necessary, because with the introduction of LOADER it is no longer necessary to load DR-DOS out of the boot sector, but SYS still always wrote a new boot sector. So in case you would have loaded a different operating system (like MS-DOS/PC DOS or anything else) from the boot sector, you would have to restore that boot sector afterwards after adding each and any of the DRDOS issues. As a remedy many other SYS options have been added with DR-DOS 7.02/7.03, and /DR:ext was extended to also allow to 1- and 2-character file extensions, now. In particular the options /L and /S are most useful in conjunction with an already installed LOADER so that you can use SYS to create the correct kernel files on the destination boot drive without copying the command processor and touching the boot sector. (Besides other improvements my enhanced internal issue of SYS has had added a couple of additional options which are not supported by 7.03 yet (namely /B, /E, /F, /G, /M, /N, /U, /W, /X, /#, and /3). The default for /DR: without extension is now .BIN. Iīm mentioned these extensions mainly for the listening FreeDOSers, so that we donīt step on each others toes and keep option names compatible.) SYS R1.54 (000313) Transfer Operating System files to Boot Medium SYS [/Help] [drive1:][path] drive2: [/options] /A Additionally copy [D]CONFIG.SYS and AUTOEXEC.BAT file(s) /B or /L Do not modify the Boot Sector in destination (with LOADER) /C Ignore %COMSPEC% variable to find command processor /DR[:ext] Use other file extension for system files (BIN) (with LOADER) /E Force refresh of serial number (and label) on destination disk /F:path Alternative way to specify the drive1:path of source files /G Audible reminder of disk change or system transfer complete /J Additionally copy preload disk compression driver /M Make multiple system diskettes in one go /N Always preserve command processor name (use CONFIG.SYS SHELL) /O[:nnn] Use old style Boot Sector, override default boot drive unit nnn /P Always prompt for insertion of floppy disk(s) (batchjob use) /S Skip copying the command processor /U Save Boot Sector & command processor (OLDBOOT.BIN/COMMAND.OLD) /V Always verify the data written to disk /W[:password] Password will be required to access the kernel files /Y Assume YES on all queries, or abort on fatal errors /X Display verbose messages /# Generate timestamp instead of serial number in destination /3 Name DRBIOS.SYS/DRBDOS.SYS instead of IBMBIO.COM/IBMDOS.COM Operating System files are copied from the source, drive1:path, to the desti- nation, drive2:, so that the destination disk becomes a bootable system disk. You do not have to specify the source drive and path: SYS will look for the system files in the root of the drive containing the SYS.COM program. By default it also uses the %COMSPEC% variable to locate the command processor. Examples: SYS a: or SYS b:\ a: Hope it helps, Matthias -- Matthias Paul, Ubierstrasse 28, D-50321 Bruehl, Germany ; http://www.uni-bonn.de/~uzs180/mpdokeng.html; http://mpaul.drdos.org