MATTsoft Boot Manager -
http://www.tdp.cz/martin/mbtmgr/
- documentation
7. Appendix
7.1 Windows 9x Winboot.Ini file
In Windows 95 and 98 is special file WINBOOT.INI or MSDOS.SYS
(If you've boot "Previous MS-DOS version" file is renamed to msdos.w40).
Windows 95 and 98 searches first for WINBOOT.INI and then for MSDOS.SYS and
use Winboot.ini when both files exists. MSDOS.SYS is not binary part of DOS
kernel like in MS-DOS 6, it's ordinary DOS text file and you can edit it using
any plaintext editor (e.g. multiedit, edit, notepad). You can specify here
many things:
[options] | Type | Default | Description
|
BootDelay= | Value | 2
| Set boot-timeout value
|
BootGui= | Boolean | 1
| Load Windows 95 graphical user interface
|
BootKeys= | Boolean | 1 | Allow function keys while booting
|
BootMenu= | Boolean | 0 | Show startup menu
|
BootMenuDefault= | Value | 1 | Default boot item
|
BootMenuDelay= | Value | 30 | Timeout (in seconds)
|
BootMulti= | Boolean | 0 | Allow booting "previous version of MS-DOS"
|
BootSafe= | Boolean | 0 | Run Windows 95 in safe mode
|
BootWarn= | Boolean | 0 | Show warning message in safe mode
|
BootWin= | Boolean | 1 | Set operating system
|
DisableLog= | Boolean | ? | Undocumented
|
DoubleBuffer= | Boolean | 0 | Load double buffer for SCSI disks
|
DblSpace= | Boolean | 1 | Load DBLSPACE.BIN
|
DrvSpace= | Boolean | 1 | Load DRVSPACE.BIN
|
Dblspace.bin= | Boolean | 1 | Load DRBLSPACE.BIN
|
LoadTop= | Boolean | 1 | Load COMMAND.COM "on the top"of pameti
|
Logo= | Boolean | 1 | Show animated logo
|
Network= | Boolean | ? | Safe mode with networking
|
SystemReg= | Boolean? | ? | Undocumented
|
[PATHS] | Description
|
WinDir= | Windows 95 directory (e.g. C:\WINDOWS)
|
WinBootDir= | Windows boot directory
|
HostWinBootDrv= | Windows boot drive
|
UninstallDir= | Uninstall directory
|
Example WINBOOT.INI file:
;
; Example WINBOOT.INI file from MATTsoft Boot Manager
;
[Paths]
WinDir=C:\WINDOWS
[Options]
BootMenu=1
BootMulti=1
BootWin=1
BootGui=1
BootKeys=1
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxx WINBOOT.INI must be > than 1024 bytes xxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7.2 Windows NT Boot.Ini file
/MAXMEM=
| Limits Windows NT to use only part of memory (value is in MegaBytes)
|
/BURNMEMORY=
| Limits Windows NT to not use some memory (also in MB)
|
/ONECPU
| On a multi-processor machines limits Windows NT to use only one
processor.
|
/NUMPROC=
| On a multi-processor machines limits Windows NT to use only some
processors.
|
/SOS
| Windows NT will display some informations while loading itself and
device drivers. This is very useful option, turn it ON!
|
/BASEVIDEO
| Use only standard 640x480x16 VGA videomode.
|
/NODEBUG, /CRASHDEBUG
| Disable kernel-mode debugging.
|
/DEBUG
| Enable kernel-mode debugging.
|
/DEBUGPORT=,/BAUDRATE=
| Enables remote debugging via serial port (COM1 by default) and
speed (19200).
|
/KERNEL=,/HAL=
| Changes kernel and hal.
|
/3GB
| Changes settings of user and system virtual memory.
|
/PCILOCK
| Doesn't reconfigure PCI devices. Windows NT will use BIOS
configuration .
|
/NOSERIALMICE=
| Disables serial mice detection on specified port or on all ports.
|
7.3 OpenDOS/DR-DOS boot menu
Most MS-DOS users use Startup menu. You can choose which configuration boot
at system startup. But HOW-TO[tm] do this in OpenDOS (DR-DOS, Novell DOS)
which doesn't have MENUITEM commands? You can use other CONFIG.SYS commands
to do this. It's like switching BAT files.
Creating menus in CONFIG.SYS (or DCONFIG.SYS) is very simple. Labels are
marked with ":" character before label name (e.g. :my_label).
Command GOTO [label jumps to specified label and GOSUB [label]
calls [label] as subroutine. Then you must exit subroutine with RETURN
command. Command SWITCH [label1][,label2[,label3[,...]]] asks user
for choice and jumps to entered label. Swictch command waits for number
(1,2,3,...) and jumps to n-th specified label (key '3'=label3 in our example).
You can use also CLS to clear screen, ECHO text to display
some text (e.g. menu) and TIMEOUT [n] to set SWITCH timeout in
seconds. Look at this example:
rem === menu ===
cls
timeout 2
echo DCONFIG.SYS Startup Menu
echo ~~~~~~~~~~~~~~~~~~~~~~~~
echo
echo 1. Normal config
echo 2. TaskMgr
echo 3. Free
echo
echo Press 1 or 2...
switch o_normal,o_tasker,o_free
rem === common ===
Lastdrive=Z
rem === normal ===
:o_normal
device=c:\utils\cdrom\mtmcdai.sys /D:MTMIDE01
set CONFIG=O_normal
rem === free ===
:o_free
set CONFIG=O_Free
return
rem tasker ===
:o_tasker
device=c:\utils\cdrom\mtmcdai.sys /D:MTMIDE01
set CONFIG=O_Tasker
return
You must also modify your autoexec.bat file to jump to right place
(GOTO %CONFIG%). Small example:
@echo off
rem === common ===
set path=c:\vc;c:\batch;c:\utils;..
goto %CONFIG%
:o_free
goto quit
:o_tasker
c:\opendos\share.exe
c:\opendos\taskmgr.exe
c:\vc\vc.com
goto quit
:o_normal
c:\vc\vc.com
goto quit
:quit
7.4 DOS fdisk arguments
MS-DOS FDISK program has many undocumented parameters. See following table:
/STATUS |
Show current partition layout |
/MBR |
Replace Master boot record with standard code. THIS DESTROYS
MATTSOFT BOOT MANAGER !!! |
/PRI |
Create primary partition |
/PRIO |
Create primary FAT16/FAT32 partition |
/EXT |
Create extended partition |
/LOG |
Create logical drive in extended partition |
/LOGO |
Create FAT32/16 logical drive drive in extended partition |
/FPRMT |
Ask for FAT16/32 in interactive mode. |
/Q |
(unknown) |
/X |
Do not use LBA partitions |
/ACTOK |
(unknown) |
/CMBR |
Create Master boot record on specified disk |
7.5 Filesystems
This chapter is not yet finished.
7.6 Partitioning your disk
When you are partitioning your DOS disk, you should choose right disk size
because
FAT disk is divided into clusters (smallest allocation unit). For example, two
bytes long file use 16KB on a 700 MB disk because this disk has 16KB clusters.
DOS/Win 9x FAT16 filesystem:
Disk size | Cluster size
|
0 - 127 MB | 2 KB
|
128 - 255 MB | 4 KB
|
256 - 511 MB | 8 KB
|
512 - 1023 MB | 16 KB
|
1024 - 2047 MB | 32 KB
|
Note: FAT16 partition cannot be larger than 2048 MB (2 GB). You must use FAT32
or divide disk.
7.7 Other programs
7.7.1 Other boot managers
- System commander
Info: http://www.v-com.com
This is a commercial boot manager. It's user interface is simmilar to
MATTsoft Boot Manager's (or vice versa? ;-).
- PTS Boot Wizard
Homepage:
http://www.phystechsoft.com/.
Nice shareware ( $20 ) bootmanager. Allows you to have up to 100 OSes
(do you really need
all of them?). Knows all the necessary data (what and where they write,
what files they use for configuration) about most common ones. You will
be able to install few OSes into one partition (the program will keep
all configuration and system files intouched, even if you install few
DOSes).
- OS-BS
Homepage:
http://www.prz.tu-berlin.de/~wolf/os-bs.html
This is a good boot manager.Note that it has been in beta for years,
but it is quite stable.
- YAPboot
Download:
ftp://ftp.ee.und.ac.za/pub/msdos/yapboo10.zip
This is the "Yet Another Partition Sector Boot Program" editor
and simple boot manager.
7.7.2 Other partition editors/fdisks
- Ranish partition manager
Homepage:
http://www.intercom.com/~ranish/part/.
Quite powerful program for dealing with partitions of your hard drive.
Allows to save MBR in a file and restore from it, change partition size,
format them, check the disk's surface, create up to 31 primary partitions
on a disk, etc. Includes boot manager. Source code included.
7.7.3 Misc programs
7.8 Operating systems
- AIX
This is abbreviation for "Advanced Interactive Executive", IBM's Unix[R]
for RS/6000 machines. Intel (x86) version also exists but is no more
developed. For more information see
http://rs6000.ibm.com.
- BeOS
I haven't seen this system yet. For more info see Be's webpage at
www.be.com.
If you are using it or you have some interresting informations let me
know.
- BSDI
BSDI is commercial BSD unix developed by BSDI Inc. More info at
http://www.bsdi.com.
- Caldera OpenDOS (aka DR-DOS)
This DOS is free for non-commercial purposes. You can download it
at www.caldera.com. Kernel source
is also available at the same site. Check it out!
- FreeBSD
FreeBSD is very good BSD unix. It's only for Intel i386 platform.
Distribution CD-ROMs (you can buy them at Walnut Creek or download)
contains many programs including development tools, databases, cad,
biology, games, ... For more informations look at
http://www.freebsd.org.
- FreeDOS
- Hurd (GNU HURD)
- Linux
- LynxOS
- Minix
Minix is a small microkernel Unix from Dr. A. Tanenbaum. It's available
free from ftp://ftp.cs.vu.nl. It runs
on PC XT or on PC AT 286+ (protected mode version).
- MS-DOS
This is most common DOS. Microsoft doesn't sell and support it,
but you can use DOS 7 from Windows 9x - or OpenDOS ;-)
- NetBSD
- Novell NetWare
- OpenBSD
- OS/2
OS/2 is good alternative to Windows 95.
- Plan 9
- QNX
is commercial real-time operating system from QSSL. You can download
bootable demodisk (including GUI, ppp and browser with HTML 3.2 and
Javascript support) from
http://www.qnx.com.
- SCO Unix (aka SCO OpenServer)
- Solaris
Solaris (sometimes "slowaris" ;-) is commercial System V Unix from Sun
Microsystems. It's available for Intel i386 and Sparc. You can buy
"solaris for free" at low cost (In CZ it's about 13 USD).
- UnixWare (SCO UnixWare)
- Windows 95 and Windows 98
Does this system need any comment?
- Windows NT
7.9 Glossary
- Active Partition
- One of the hard partitions on a disk should be marked as
the active partition, which designates the
partition to boot. This is used by fdisk and standard mbr code.
If you are using boot manager you can boot multiple partitions.
- ATA
- AT attachment, the politically correct term for IDE.
- Boot Blocks
- Basic Input/Output System, a slow and antiquated ROM which is
found in most x86 PCs and consists of 16-bit code. It
is important because it is ubiquitous and because it is
a very easy way to get your kernel and device drivers
loaded in the first place.
- Cylinder
- A concentric area around the disk spindle, spanning multiple
sides (heads, platters).
- Disk Addressing
- A sector of the disk is identified by an ordered triple,
consisting of cylinder, head, sector. Traditionally,
cylinders and head numbering starts with zero, while
sectors start with one. Most people think of the disk
as being laid out in "row-major order". This means that the
numbering goes in the following order; 0:0:1, 0:0:2, 0:0:3,
and so on.
Although the disk is laid out in three dimensions, it may
help to think of it this way.
Another way of phrasing the order is that all the sectors
are in order, then you proceed to the next head. After
every head's set of sectors is the next cylinder.
Physically, heads are aligned vertically, cylinders are
concentric cylinders about the axis of rotation, and
sectors are radial units that form a complete circle
about the axis of rotation.
- Disklabel
- A bunch of data about a drive that tells Unix how to use the
drive. Disklabel is used by FreeBSD, NetBSD, OpenBSD, Solaris
and many other unixes.
- EIDE
- The more advanced form of IDE.
- Extended Partition
- One of the primary partitions can
be marked as an extended partition, and the "extended
partition table", essentially another partition table,
is stored somewhere as the first sector of the hard partition
which was marked extended.
For some reason, you can only make one of these four new
partitions point to an actual data-containing area.
However, you can also have one of these four new
partitions point to another extended
partition, so in effect this forms a linked list that you
can extend as much as you like.
- Geometry Translation
- Originally and still a kluge, this is a term for what is done
by a drive controller BIOS to allow you to use large disks (over
512MB) using old mainboard BIOS routines, which speak in terms of
CHS disk addressing.
What I mean is that originally there were BIOSes that read
from disk using supplied parameters which were packed into registers.
Unfortunately, they weren't very forward-looking and didn't leave
enough space for future drives. When the number of bits required to
identify a cylinder (10) exceeded the number of bits provided by the
BIOS, something had to be done. Well, there were 6 bits used to
identify the drive head, and it was well-nigh impossible to change
the BIOS interface at this point (curse backwards binary
compatibility!). So the drive controller BIOS designers decided to
emulate a disk with less cylinders and more heads. Thus, the
controller BIOS translates a disk address using this ficticious
geometry to the real drive geometry, usually using some quick bit
shifts. As long as you ALWAYS use this ficticious geometry,
and never change controllers, no big deal.
This is basically all pretty bogus since modern drives use variable
density bit packing on the cylinders to ensure maximum storage
capacity and low magnetic drift. The Macintosh low-density floppy
drives did this in a rather crude manner (very cool of them).
The geometry they report is already disconnected from reality, so
don't put too much credibility in the whole mess.
- IDE
- IDE stands for "Integrated Drive Electronics", and it's also
called ATA. IDE is brain-damaged and lame. A recent
extension to IDE, called EIDE or ATA-2, attempts to come
near the functionality that SCSI has had
for years. I prefer SCSI.
By the time IDE controller designers add all the features of
SCSI into (E)IDE (which they have already started doing),
it's going to be even more complicated than SCSI.
Besides all this, IDE has trouble coexisting with other drive
types, and it is x86 I/O bus specific, making it difficult
(but not impossible) to design other computer architectures
to use IDE drives. One of its few advantages are that due to
its overall simplicity, the overhead of setting up a command
(controller latency) is much lower than SCSI, so you are
going to have better access times. Oh yeah, they're also
cheap, in more ways than one. On the downside, the on-disk
buffer to controller speed in the best EIDE setup doesn't
even come close to the bandwidth of Ultra-Wide SCSI.
- LBA
- LBA is an acronym for "Linear Block Addressing". This
acronym was invented by IDE drive manufacturers to describe
the method of addressing disk blocks that was independent of
the disk geometry.
- Magic Number
- Forty-two ;-) Also, a special binary signature placed within
a file or partition (usually at a fixed place), used to identify such
a beast.
- SCSI
- SCSI stands for Small Computer Systems Interface - the One
True Controller Type. SCSI is a real peer-to-peer kind of
protocol, meaning you can do cool things like hook two
machines up to the same bus with six other devices (disk
drives, scanners, etc) shared between them. Some people
and companies (Microsoft) claim SCSI is hard to set up.
It is not true. It's just that SCSI can sling a ton of data
around, and so it is usually set up to take advantage of
things like DMA.
If you're ever going to have more than one disk drive, or you
want high performance, get SCSI.
- Segment Notation
- The x86 has a much-maligned property of being a
segmented architecture.
The xxxx:yyyy
notation means you multiply the xxxx by
a factor of 16, and add to the yyyy to get
the physical address, in certain modes.
Despite being dragged through the mud, segments can let
you do pretty neat things like per-segment protection
(rather than per-page), and checking array bounds in hardware.
Nevertheless, it takes a long time to load segment descriptor
registers (9 cycles, with potential hidden costs).
- Track
- A ring-shaped surface where a cylinder intersects the
side of a side.