Fantastic Reply farl7@bigpond.com / Fri Mar 18 15:34:20 2005 Eric (I presume your name) you are a gem on the web for us oldies trying to master computers. Myself and fellow seniors from our computer group in Australia really appreciate the step by step help you have given us. Before I read your last reply wiped the HD again and installed DOS 6.22 and printed out Autoexec and Config. Have a little program from an English guy that installs Samsung CDROM drivers in a Samsung folder and automatically alters Autoexec and Config. Reprinted Autoexec and Config and saw what happened. Was amazed that nothing changed in the DOS folder. It all was really quite simple what was happening after reading your detailed article. Reinstalled a fresh copy of FreeDos 9. Did not alter anything in Autoexec or Config but added To Config just above the last line "@echo off" Device=C:\FDOS\BIN\ATAPICDD.SYS /D:FDCD0001 To Autoexec above 5th last line "echo type HELP to ......navigation " SHSUCDX /D:FDCD0001 and the CDROM drive was allotted D: and CD's could be read but real flakey ie many retries. Nothing could be copied from the CDROM D: to C: drive. Eventually the computer will lock up with command.com error. Found cdtest.exe in FDOS/BIN and when ran gave heaps of CD errors. Some of the terminology used in the Config.sys file are not in our books for example "!" "1?DOS=HIGH" and when we run C:\>help the computer just reboots. The Config.sys file explains some operations are buggy. Our group has got disks from DOS 1 through to DOS7.1 so we will install and learn progressively each version then we will be in a better position to tackle FreeDos. Once again thanks for your help. -------------------------------------------------------------------------------- ----------- Additional comments: :-) . / Fri Mar 18 23:58:23 2005 AtapiCDD is the cause of the slow flakey CD reading. It is an early version and not ready for general usage, hence the common reply you will read about getting VIDE or some other driver. Unfortunately this is more of a limited developer time than anything else, so it will improve, but no timeframe. The ? and ! in the config.sys are FreeDOS specific enhancements (though I think they are based on similar constructs found in DR DOS) to aid in multiconfiguration setups. They can be used as simple alternatives to using a menu [as presently our menu support in config.sys is unique] or to implement the config.sys's menu options. Adding '!' to the config.sys line will cause that line to always be executed, even if you select the F8 option at boot time to prompt for each line, the lines with the exclamation will be executed and you will _not_ be prompted. Use this with care, if the line causes your system to lock, then the only option is clean boot (skip config.sys altogether) or use an other boot medium. Adding the '?' has two uses, the simple one is that it will cause that line to always ask at boot time if you want to run this line. The alternative is a sequence of single digit numbers followed by the question mark, e.g. 1? or 125? in which case you will be presented with the ability to choose a configuration (select 1,2,... etc) at boot time. When a configuration is selected then each normal line (those without a #?) will be processed, including those with just ? or ! in them (where the ones with ? will still prompt and the ones with ! will always run). Additionally those lines matching the selected configuration will be ran. I.e. a line beginning with 124? will be processed if the user selects configuration 1, 2, or 4, but not if 3, 5, 6, 7, 8, or 9 is selected. There are only 10 possible configurations (though each can be further changed by the use of the simple conditional load '?' usage). Normally 1-9 are used (sequentially) with 0 reserved for special usage, usually clean boot; [this last part is just the convention I've used and seen used]. The MENU commands are simply ECHO commands executed at an earlier stage in config.sys processing so they are displayed prior to the prompt for which configuration to use. ECHO commands are executed at the same time in config.sys processing as device= and similar commands, so you can do stuff like ECHO loading blah device=blah ECHO blah processing complete which will output something like blah This is blah device, we are doing something that might take a while blah prcessing complete The MENUDEFAULT and MENUCOLOR directives indicate default selection and timeout, and colors used respectively. Additionally, when a configuration option is found and requested at boot time, then the environment variable %CONFIG% is set to the selection one. This allows doing things in AUTOEXEC.BAT based on the user's selected configuration (e.g. IF "%CONFIG%"=="1" goto StandardOptions ) As an example here is the config.sys you posted above interspersed with what each line does: >Config.sys >REM LASTDRIVE=Z this line is commented out, does nothing, as any other lines starting with REM will be. If uncommented (removed the REM) then it will specify to the kernel how many possible drive letters you may use. For each drive the kernel has to allocate a structure to hold information such as the current path, device driver to access it, ... so each possible drive letter (whether used or not) will each up a tiny amount of your conventional memory. The default is usually E, but may vary between DOS vendors/versions. If you do not set this, any attempts to use an additional drive will fail. This is usually just set to Z, and then you load your CD (network, etc) driver and tell it to use some drive like R or X. [oddly R,X, and Z are the most common I've seen for CD and network mapped drives] >REM DEVICE=C:\ATACD\ATAPIMGR.SYS this commented out line will presumably load a device driver for a CD-ROM drive >;!COUNTRY=031,858,C:\FDOS\BIN\COUNTRY.SYS Using ; is another way to comment lines in config.sys If uncommented this would load the corresponding code page and stuff for the selected country. This will only work in development kernels not our stable ones. (The stable ones allow a subset of this command, but no country.sys) >!SET lang=EN This sets up the environment variable LANG and sets it to english (EN). This environment variable is used by many (ok some) of the FreeDOS utilities to enable them to localize their output. When set and available translations exist, other languages (such as spanish (ES)) will be used for output, and when not the default (usually english) is used. >;for help on commands, see file config.sys in your FreeDOS directory >;www.benq.com/ss_download/drivers/storage/cd-rom/drivers/dos/apicd214.exe these are just comments referring you where to find help/drivers >;DOS=HIGH is still buggy (try running HELP), as is CDROM-driver. (see website) this commented out command when enabled will allow the kernel to load some of its internal data to the HIGH memory area (a special area at the top of the 1MB limit that 286 and higher can access even in real mode, just under 64KB - not to be confused with UMBs which are holes in the 640KB-1MB [adapter] memory address space that is available for usage as normal memory). >!LASTDRIVE=Z see above, actually sets last potential drive letter to Z >!BUFFERS=20 >!FILES=40 indicates at most 40 files can be opened in total (including command.com, TSRs and active program). The specifies the size of the System File Table (SFT), which is a kernel structure that maintains a list of open files, current position in the file, where it is on the disk, etc. No program can open more files than this, even if they support doing so; however no program can usually open this many as by default there is a 20 file handle limit per program*. Anywhere from 20-40 is a good value for this, though some programs insist on more, up to 255. Windows 3.x (which does not yet run on our kernel) will do some internal stuff to extend this to around 128 when ran and then restore it, hence it does not do like most programs and require you to change your config.sys. *In DOS there are two lists of open files, each program has a local table (JFT - job file table or something like that) in which the kernel uses to map a programs file handle to a SFT entry. The JFT defaults to 20, but a program can programmatically set this to a larger value (and hence use more memory) since I believe MS DOS 3.3. When you start a program, usually the first 5 handles are already assigned, to standard input/ouput/error similar to Unix systems. >!DOS=UMB >!DOSDATA=UMB these tell the kernel to use UMBs if available, you must load himem or equivalent for these to actually have an effect. Some documents report that the himem device line should be prior to using these in other kernels, but this is not necessary in the FreeDOS kernel. >!set dircmd=/ogn /4 Sets the environment variable used by FreeCom for the default display options for 'dir' >!MENUCOLOR=7,0 >MENUDEFAULT=1,5 these to set the default color scheme (always set, never asks) and default configuration (1) with a timout of 5 seconds before it is automatically choosen. >MENU 1 - Load FreeDOS with maximum RAM free, using EMM386 >MENU 2 - Load FreeDOS including HIMEM XMS-memory driver >MENU 3 - Load FreeDOS without drivers these display what each configuration option selects >1?DOS=HIGH only if configuration 1 (cfg1) is selected will DOS=HIGH be used, see above >12?DEVICE=C:\FDOS\BIN\HIMEM.EXE if cfg1 or cfg2 selected will load himem driver >1?DEVICE=C:\FDOS\BIN\EMM386.EXE NOEMS X=TEST if cfg1 is selected will load emm386 without EMS support. This is usually needed to provide UMBs on 386+ computers. >REM ;12?DEVICE=C:\FDOS\bin\atapicdd.sys /D:FDCD0001 commented out, on cfg1 or cfg2 would load AtapiCDD >12?SHELL=C:\COMMAND.COM C:\ /P=c:\autoexec.bat if cfg1 or cfg2 is selected, sets shell to command.com, similar to default values, just explicit (making it easier for users to edit) >3?SHELL=C:\COMMAND.COM C:\ /D /K set path=C:\FDOS\bin if cfg3 is selected then loads FreeCom with different options, I forget offhand what they mean, but one of them means skip autoexec.bat processing (same as Fkey used at boot time) >REM DEVICE=C:\SAMSUNG\SSCDROM.SYS /D:SSCD000 /v commented out loading of another cd driver, if uncommented would be ran regardless of configuration selected >LASTDRIVE=Z set the last drive again ... one of these should probably be removed :-) >DEVICE=C:\ATACD\SR_ASPI.SYS /D:MSCD000 /Q and this one will attempt to load this cd driver, again regardless of configuration selected. It will not normally prompt if this line should be processed, but will do so if Fkey pressed at boot time. Let me know if any particular constructs need clarification. :-) -------------------------------------------------------------------------------- ----------- Additional comments: help issue . / Fri Mar 18 23:59:45 2005 this is a known bug in htmlhelp program. We don't really know what the cause is, but a recompiled version using kitten library instead of cats seems to fix it (and should be available somewhere, ask on fd-user list if you can't find it) -------------------------------------------------------------------------------- ----------- Additional comments: further reading . / Sat Mar 19 02:13:02 2005 You may also wish to read the config.txt file (online at http://freedos.sourceforge.net/kernel/docs/config.txt ) included with the kernel. It briefly describes all supported config.sys constructs available in the FreeDOS kernel and generally most DOS kernels (except for two of them). You can also view the htmlhelp documents online (latest release version of the docs but with email addresses removed) at http://help.fdos.org/