device=c:\boot\boot.sys /p /u~\ /d1 /t15 /mh71o17p17b72kdbs00t1fu1f

rem See comments at end (keeping DR-DOS happy)

rem DEFINE DRIVER PATHS (retained for autoexec)
device=boot.set drp=C:\DRIVERS\
device=boot.set ddrp=C:\DRDOS\
device=boot.set compath=C:\4DOS\BOOT\
device=boot.set cspec=%compath%4DOS.COM

rem DEFINE COMMON MEMORY MANAGER PARAMETERS
device=boot.set xo=c800-cbff

device=boot.set xe=c800-cc00

device=boot.set iend=f800

device=boot.set frl=cc00
device=boot.set frh=e800

rem DEFINE MEMORY MANAGERS
device=boot.set qemm=%drp%qemm386.sys rom ram vrega x=%xo% fr=%frh% emb=15232
device=boot.set max=%drp%386max.sys shadowram vga extsize=15526 ram=%xe% use=f000-%iend% frame=%frh%
rem native DR-DOS
device=boot.set dre=%ddrp%emm386.sys /kb=1024 /exclude=%xe% /bdos=FFFF
rem native MS-DOS
device=boot.set mse=%drp%emm386.exe 4096 x=%xo% i=dc00-%iend% frame=%frl% ram

rem DEFINE DEVICE DRIVERS AND SWITCHES
device=boot.set cache=%drp%hyper386.exe
device=boot.set cachp= xi:+ xs h og:+ i:0 xp:99 s t:1 xw:- ot:+ p:99 k:-
device=boot.set con=%drp%hyperdk /e
device=boot.set coff=%drp%hyperdk /d

device=boot.set bcnt=3
device=boot.set stks=0,0
device=boot.set hdos=%drp%hidos.sys /bdos=ffff
device=boot.set scsi=%drp%uspi14.sys
device=boot.set ramd=%drp%njramdx.sys 4096 /S
device=boot.set ansi=%drp%jansi.sys
device=boot.set ball=%drp%pprrpt.sys /B /s90

device=boot.set ini4=@%compath%4dos.ini

rem SET PATH AND MENU TITLES BY OS
device=boot.if DRDOS
   device=boot.set path=C:\DRDOS\;C:\COMMON\
   device=boot.set title=~This is ~D~R-~D~O~S 6.0
   device=boot.set os=DR
device=boot.else
   device=boot.set path=C:\DOS\;C:\COMMON\
   device=boot.set title=~This is ~M~S-~D~O~S 5.0
   device=boot.set os=MS
device=boot.endif




rem *                      MANAGER MENU

device=boot.a /mb00
device=boot.top ~Select a ~Memory ~Manager
device=boot.top %title%

device=boot.# ~Q~E~M~M386
 device=boot.name QEMM
 device=boot.set mgr=QEMM
 device=boot.set nw=nw3
 device=boot.set noems=noems
 device=boot.set dma=dma=
 device=boot.set mgd=%qemm%
 device=boot.set lhs=%drp%loadhi.sys /b 
 rem the line above has a required trailing blank
 device=boot.set mtitle=~Memory ~Manager is \%mgr%\

device=boot.# 386~M~A~X
 device=boot.name MAX
 device=boot.set mgr=MAX
 device=boot.set nw=nowin3
 device=boot.set mgd=%max%
 device=boot.set noems=ems=0
 device=boot.set nsc=noscsi
 device=boot.set dma=dma=
 device=boot.set lhs=%drp%386load.sys prog=
 device=boot.set mtitle=~Memory ~Manager is \%mgr%\

device=boot.# ~D~O~S (~Himem and ~E~M~M386)
 device=boot.name DOS
 device=boot.set mgr=DOS
 device=boot.set noems=noems
 device=boot.set dma=d=
 device=boot.set scsi=%scsi% /b
 device=boot.set mtitle=~Memory ~Manager is \%mgr%\

device=boot.# ~None
 device=boot.name NONE
 device=boot.set mgr=NONE
 device=boot.set scsi=%scsi% /b
 device=boot.set mtitle=~No ~Memory ~Manager




rem *                      CONFIG MENU

device=boot.b /mb77
device=boot.top ~Select a ~Configuration
device=boot.top %title%
device=boot.top %mtitle%

rem   NORMAL OPERATION (Any manager or none)
DEVICE=BOOT.# ~Normal ~Operation
 device=boot.set boot=normal

 rem normal for DOS (DR or MS) management
 device=boot.IF %mgr% == DOS
    device=boot.IF DRDOS
       device=%scsi%
       device=%dre%
       device=%cache%%cachp% c:512
       hidevice=%ramd%
       hidevice=%ansi%
       hidevice=%ball%
       hibuffers=%bcnt%
    device=boot.ELSE
       dos=umb
       device=%scsi%
       device=%drp%himem.sys
       device=%mse%
       device=%cache%%cachp% c:512
       devicehigh=%ramd%
       devicehigh=%ansi%
       devicehigh=%ball%
       stacks=%stks%
       buffers=%bcnt%
    device=boot.ENDIF
 shell=%cspec% %ini4%

 rem  normal for NO memory manager
 device=boot.ELSEIF %mgr% == NONE
    dos=low
    device=%scsi%
    rem device=%cache%%cachp% c:512
    device=%ramd%
    device=%ansi%
    device=%ball%
    stacks=%stks%
    buffers=10
    shell=%cspec% @%compath%noswap.ini

 rem normal for other (qemm/max) manager
 device=boot.ELSE

    device=%mgd% %nw% %nsc%
    device=%lhs%%scsi%

    device=boot.IF DRDOS
       device=%hdos%
    device=boot.ENDIF

    stacks=%stks%
    buffers=%bcnt%
    device=%cache%%cachp% c:2048
    device=%lhs%%ramd%
    device=%lhs%%ansi%
    device=%lhs%%ball%
    shell=%cspec% %ini4%

 device=boot.ENDIF

rem  WINDOWS 3 ENHANCED (Any manager)
DEVICE=BOOT.? not %mgr% == NONE # ~Windows 3 ~Enhanced
 device=boot.set boot=windows
 device=boot.IF %mgr% == DOS
    device=boot.IF DRDOS
       device=%scsi%
       device=%dre%
 rem      device=%cache%%cachp% c:2048 /ka
       hidevice=%ramd%
       hibuffers=%bcnt%
    device=boot.ELSE
       dos=umb
       device=%scsi%
       device=%drp%himem.sys
       device=%mse%
       device=%cache%%cachp% c:2048 /ka
       devicehigh=%ramd%
       stacks=%stks%
       buffers=%bcnt%
    device=boot.ENDIF
 device=boot.ELSE
    device=%scsi%
    device=%mgd% %noems%
    device=%lhs%%ramd%
    device=%cache%%cachp% c:2048 /ka
    stacks=%stks%
    buffers=%bcnt%
 device=boot.ENDIF
 files=60
 shell=%cspec% %ini4%

rem  AS/400 Dialup (Any 3rd party manager)
DEVICE=BOOT.? %mgr% == QEMM .OR. %mgr% == MAX # ~A~S/400
 device=boot.set boot=as400
 device=boot.set pcs=C:\PCS\
 device=%mgd% %nw% %noems%

 device=boot.if DRDOS
    device=%hdos%
 device=boot.endif

 files=30
 stacks=%stks%
 buffers=%bcnt%
 device=%cache%%cachp% c:1024
 device=%lhs%%scsi%
 device=%lhs%%ramd%
 device=%lhs%%pcs%EIMPCS.SYS P=5 I=69
 device=%lhs%%pcs%ECYDDX.SYS
 shell=%cspec%

rem VANILLA (Don't display if manager in use)
DEVICE=BOOT.? %mgr% == NONE # ~Vanilla
 device=boot.set boot=vanilla

 device=boot.if DRDOS
    device=boot.set compath=C:\DRDOS\
    device=boot.set auto=/P:c:\drdos\boot\autoexec.bat
 device=boot.else
    device=boot.set compath=C:\DOS\
    device=boot.set reload=c:\dos\
    device=boot.set auto=
 device=boot.endif

 dos=low
 device=%scsi%

 shell=%compath%command.com %auto% %reload%

rem  4DOS VANILLA
DEVICE=BOOT.? %mgr% == NONE # 4~D~O~S ~Vanilla
 device=boot.set boot=vanilla
 dos=low
 device=%scsi%

 shell=%cspec% @%compath%noswap.ini

 rem EXPERIMENTAL CONFIG (No rules!)
 DEVICE=BOOT.# ~Experimental ~Config
 device=boot.set boot=vanilla
 device=%mgd% %nw% %nsc%

 device=boot.if DRDOS
    device=%hdos%
 device=boot.endif

 stacks=%stks%
 buffers=%bcnt%
 device=%lhs%%scsi%
 device=%cache%%cachp% c:4096 z:63
 device=%lhs%%ramd%
 device=%lhs%%ansi%
 rem device=%lhs%%ball%
 shell=%cspec% %ini4%

rem BACKUPS -- optimized for tape performance
DEVICE=BOOT.? %mgr% == QEMM .OR. %mgr% == MAX # ~Backups
 device=boot.set boot=backups
 device=%mgd% %nw% %nsc%

 device=boot.if DRDOS
    device=%hdos%
 device=boot.endif

 stacks=%stks%
 buffers=%bcnt%
 device=%lhs%%scsi%
 device=%cache%%cachp% c:6144 z:63
 device=%lhs%%ramd%
 device=%lhs%%ansi%
 shell=%cspec% %ini4%


DEVICE=BOOT.0

device=boot.set lhs=
device=boot.set lhp=
device=boot.set title=
device=boot.set bcnt=
device=boot.set stks=
device=boot.set hdos=
device=boot.set mtitle=
device=boot.set auto=
device=boot.set reload=
device=boot.set qemm=
device=boot.set max=
device=boot.set cachp=
device=boot.set scsi=
device=boot.set ramd=
device=boot.set ansi=
device=boot.set ball=
device=boot.set ini4=
device=boot.set mgd=
device=boot.set nw=
device=boot.set noems=
device=boot.set nsc=
device=boot.set dma=
device=boot.set ddrp=
device=boot.set ex=
device=boot.set in=
device=boot.set fr=
device=boot.set dre=
device=boot.set mse=
device=boot.set xo=
device=boot.set xe=
device=boot.set iend=
device=boot.set frh=
device=boot.set frl=

device=boot.z

DEVICE=BOOT.END
dos=high,noumb

rem  This is my actual config.sys provided to Hans Salvisberg as a "real world"
rem  example of BOOT.SYS usage.  It consists of two menus.  The first allows
rem  selection of a memory management scheme.  The second presents the
rem  configuration options.  The second menu's entries are conditioned by the
rem  selection of a memory manager.

rem  The key element of the "programming style" here is that path names and
rem  constant device driver switches are all defined just once at the top of
rem  the file via the BOOT.SET feature.  The idea is to make maintenance easy.
rem  Most changes will need to be made at one obvious place near the top of
rem  the file rather than globally throughout.

rem  Another feature of this config file is that it works with both MS-DOS
rem  (Microsoft) and DR-DOS (Novell/Digital Research).

rem  The use of third party memory managers makes this config file much
rem  easier to set up because it limits the amount of MS/DR DOS distinctions.
rem  4DOS (JP Software) helps keep the configuration down to a single autoexec.
rem  DR-DOS' command.com and 4DOS allow autoexec.bat to be someplace other than
rem  the root directory of the boot drive.  Since neither command.com is used
rem  except in the "vanilla" configuration, it is easy to have a single
rem  autoexec which is not in a place where "install" programs can find it.

rem  Any program names, etc., which happen to be trademarks are, of course, the
rem  property of their owners.

rem  No copyright is claimed, but acknowledgment of my authorship would be
rem  appreciated in any copies or derivative works.

rem  Raymond P. Tackett (CIS 76416,276)

