All we are know a problem with running an old programs on a new computers and,
    vice versa, when a new program runs on an old machine. Second might be decided
    with purchasing a new one, first - much easy. My solid opinion is DOS-program must
    work in DOS, not in emulated, but in "clear". This will safe us out of crush in most
    inconvenient moment.
    I have had some problems with running MS DOS contest software which are solved
    already without using any QEMMs and MEMMAKERs. If the programs requires a lot of
    free memory (for example you run WF1B+RITTY, Packet Cluster, Telnet simultaneously)
    you need to get rid of all unnecessary devices, commands and programs in system
    memory and use upper memory as wide as possible. If running program requires EMS
    (such as SD), you may try this anyway. Your system will not crush when you start
    exchange to DX in contest.
    How you can do it? Look at memory business with "mem /c /p" command from DOS
    prompt and check what you really need, which commands and devices you need might
    be loaded in upper memory but still occupy lower. Since Windows95 command DOS has
    a new useful feature, it might be assigned with parameter NOAUTO or AUTO (default).

    Command DOS default parameter AUTO force standard devices HIMEM.SYS, IFSHLP.SYS,
    STACKS be loaded automatically from command processor COMMAND.COM kernel.
    Note that commands listed in last group are invisible for mem-command, (so called
    inner commands, command "mem" is inner too and executes from COMMAND.COM kernel)
    anyway, they are presents in memory and not all of them are necessary.

    Also not all of devices and programs takes their places in upper memory as promised
    in DOS help, why? - it is an other question. If you issue command DOS like DOS=NOAUTO
    you can load only devices, programs and commands which are pointed surely in CONFIG.SYS
    and AUTOEXEC.BAT with parameters you create. Look here, perhaps you never use
    DBLBUFF/DBLSPASE (2.5KB) or SETVER (1KB), why your system needs take their in memory?
    Why it needs to take FCBS if you never use old DOS programs which are needs it?
    In those rare cases when I wish "lie" to some programs to run under present version,
    I can type "setver" from DOS prompt by fingers, is not it?

    Assigning DOS=NOAUTO you can load all is possible in upper memory with DEVICEHIGH,
    (LH) in your AUTOEXEC.BAT. Moreover, it is possible to increase free memory changing
    parameters and values of some commands and programs loading to memory.
    You can check how much memory you can make free if FILESHIGH=8 instead =50, or
    BUFFERSHIGH=12 instead =32. Playing this way I find one very interesting point in
    LASTDRIVE, each drive letter after F "eating" about 100 bytes of memory.
    Thus, if you have LASTDRIVE=Z (as usually), but have really last drive D (as usually)
    - you lost about 2KB of memory. I'd like to show my CONFIG.SYS and AUTOEXEC.BAT.

    This is CONFIG.SYS:

    DOS=NOAUTO ;Now you know why.
    DOS=HIGH,UMB ;To use upper memory blocks.
    DEVICE=C:\WINDOWS\HIMEM.SYS ;Can not be loaded in upper memory.
    DEVICE=C:\WINDOWS\EMM386.EXE ;Can not be loaded in upper memory.
    | Do not use parameter RAM because it is default. If there is not DOS programs which
    | are requires EMS on your disk (such as SD), type NOEMS because RAM is "eating mem".
    BREAK=ON ;Standard.
    BUFFERSHIGH=16 ;It is old disk cache command, 8 is enough if you going run DOS session
    | only and use SMARTDRIVE in AUTOEXEC.BAT. Ignores by windows.
    FILESHIGH=16 ;Count all your using hardware devices (display, keyboard, drives,
    | mouse, ComPorts, LPT,...etc) and add 4 to total quantity. Ignores by Windows.
    LASTDRIVEHIGH=K ;I have 3 HDD divided for few logical each, CDROM and FDD, so "K"
    | is my last drive really.
    DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS ;Ooops! Old friend IFSHLP.SYS well known since
    | Windows 3.1., Windows 95/98 still can not run without this real time driver.
    | Can not be loaded later or I do not know yet - how.
    COUNTRY=007,866,C:\WINDOWS\COMMAND\COUNTRY.SYS ;These both can not be loaded
    | later, therefore I must point their now to run Windows in the next step.
    STACKSHIGH=9,256 ;I have an application which is running with other subprogram
    | simultaneously. Check whether you need it. If yes - play with figures, first 8-64,
    | second 32-512. Smaller is better for free memory but worse for programs which
    | requires memory stacks for execution.

    This is AUTOEXEC.BAT:

    rem C:\WINDOWS\SMARTDRV ;I open remark if going do DOS session for a large program
    | for a long time (such as WF1B in Contest).
    LH UKRUS ;National language support device driver if you need it.
    LH MOUSE ;If you need it, I like keyboard
    rem D:\IOMEGA\GUEST.EXE. ;Open if I need zip-drive
    SET BLASTER=A220 I7 D1 T4 ;Understandable. You have something like
    SET SOUND16=D:\OPTI930 ;this for your sound card.
    CLS ;Clears screen.
    NC ;Runs Norton Commander. The last executable program on 1-st step of loading.

    On this point my computer stops first step of loading and seems like an old DOS machine
    in spite of information "Starting Windows 95..." in the beginning and windows logo.
    By the way, all Windows logos might be "switched off" and system boots a bit faster.
    I divided loading process for two steps because frequently I do not need only Windows,
    but frequently only DOS for very long time of operation in contests, you too, I guess.
    On finishing DOS session I can switch off my computer not proceeding particular
    procedures like in Windows because in this point system do not touching Virtual
    Windows Drivers (VXD) and system register yet.
    If I need Windows environment I have push F10 key to quit Norton Commander,
    then type "W" and press ENTER key. For continue loading of Windows I created
    batch file W.BAT. Like this:

    MOUSE /r ;Releases mouse driver from memory.
    UKRUS /release ;Releases NLS driver from memory.
    KEYB RU,,C:\WINDOWS\COMMAND\KEYBRD3.SYS ;These three commands might be loaded
    | on second step to run Windows normally and no "eats" memory while DOS running.
    WIN ;Force run WIN.COM

    And now I am in Windows. What do you think about this? Not so comfortable, yes?
    But very reliable, I think. Anyway, I can get up to 640 kb of free conventional
    memory any time in DOS mode and do not worry about system stability. One more change
    required in MSDOS.SYS for BootGUI=0 instead =1. It is necessary to prevent loading
    of Windows graphical interface automatically. It will be loaded later by WIN.COM.

    Please note, this for Windows95/98 only. Check this way.
    Should be very pleased for all your comments. Please forgive me my poor english. GL!