Mail Archives: opendos/2000/10/29/11:46:04
----- Original Message -----
From: "Ben A L Jemmett" <ben DOT jemmett AT ukonline DOT co DOT uk>
To: <opendos AT delorie DOT com>
Sent: Friday, October 27, 2000 4:09 PM
Subject: Re: DRDOS FDISK
> > I am really baffled by all of the talk about DRDOS FDISK. The only thing
> any
> > FDISK does is make entries into the last 66 bytes of the very first
sector
> > of track zero on a hdd.
> DR-DOS's FDISK does more - it'll format the partition as well. However,
> FDISKs generally also rewrite the MBR - MS-DOS needs FDISK /MBR to do
that.
I stated that elsewhere. The only other thing written to the MBR is a little
binary loader. The word boot actually is short for old computer termonology
that was Bootstrap loader. In the old days, we had to manually load a
program into the computer by manually flipping many switches then enter the
data that was set to the address the switches were set to. This often would
require one to two hundred such operations to load a bootstarp loader, which
then would be able to read a much larger program from a paper punch tape.
In today's computers, we have ROMs that contain the startup procedures
required. However, these ROM programs are quite stupid and are made that way
for fexibility. So to give the computer a little more intelligence to read a
disk drive (or audio cassette tape deck as in old PC computers) a small
loader program is put at the beginning of the disk or tape to tell the
system how to load more of the program from the disk or tape. After it has
loaded all the programming needed to be able to use the disk or tape drive,
it then will load as OS.
In the case of early PCs, this OS was basically what you would have if you
run DEBUG. From DEBUG you would use the GO command to go to an address
location for another ROM location (this could also be another physical ROM
in the system) and start whatever program was located there. In the case of
an IBM PC, if it did not find a floppy drive, it would then automatically
start BASIC from the BASIC ROMS installed. If you had a cassette tape drive
attached you could then use commands in BASIC to access the tape drive. The
tape drive would then be accessed and a loader program would be read in.
This loader program would now tell the computer how to read the rest of the
tape and where to put the program into memory. (i.e. start loading program
starting at memory location such and such. Typically, the program would be
loaded into memory from highest memory location to lowest memory address
used. After the program was loaded into memory, the loader program would
tell the computer what address to jump to, to run the program that was just
loaded from tape. I never have used an IBM PC with a cassette tape, but did
with my OSI I built and later with my APPLE ][+.
A disk drive works basically the same way. You have this boot loader
program. The boot loader reads the partition table to determine where to
boot the system from. From this point on, floppy and hard disks use the same
process. The boot sector is read. The boot sector tells the system what to
load next. For MS DOS, this would be the IO.SYS file. In early DOS for the
IBM, it would just start loading from a specified sector on the diskette. It
did not even know the name of the file. It would be the first sector located
immediately after the last sector of the root directory. Later version of
DOS are a little more complexe and can find the appropriate file name and
load it. PCDOS 1.x could not do this. It was for floppy only systems, which
is what the IBM PC was. When the IBM XT was made they had to write a new DOS
to include being able to boot from a hard drive and accessing it. I don't
even remember if PCDOS 2.0 could use FAT 16. Diskettes use FAT 12 as does
hard drives up to about 10MB or partitions of about 10MB or less. Early XTs
only came with 10MB or smaller hard drives. Each new release of PCDOS would
have more capabilities and handle larger drives. But the basics never
changed. So when hard drives were added, an intermediate loader was added
between the BIOS and the boot sector. This is contained in the MBR.
Basically the MBR tells the system where to find the boot sector to read. It
has no other purpose. If the system does not detect a diskette in floppy
drive A:, it will look to see what is at location 80h and start reading
whatever is located there. This will be the first hard drive in the system.
It will read the first 512 byte of binary code located there and execute it.
This program will then read the partition table and find the location
(sector) where to load the next 512 bytes of data from. With MS OSes, this
will be the boot sector of the boot partition. i.e. the very first sector of
the boot partition. This will now run the code that is in the BIOS to read a
floppy drive's boot sector. From this point on every thing is the same for
floppy or HD. (ZI, Jazz, CD, etc are the same with newer BIOS that allow
booting from different drives.) This is a simplified description of what
happens but should not be too complicated to understand. The BIOS basically
takes the place of flipping all the switches manually as I stated earlier.
> > > BTW, I lost the message with the information about what should be in
> > > the OEM signature to be MS-DOS compatible. Can someone please
> > > resend it to me? :)
> > In retrospec of this paragraph that I am replying to now, I am at a loss
> as
> > to WHAT signature you want.
> The OEM label, found in every DOS boot sector. DOS boot sectors are laid
> out thus:
> Jump to actual code start
> 'IBM 3.3', 00 - 8-byte system name
> BIOS Parameter Block - between 32 and 50 bytes AFAIK.
> Actual boot code.
Yes, this is a boot record. This is not the MBR. I think some people get the
two confused. The BPB also contains a signature byte. It is HEX 29 i.e. 29h
for some MS stuff. I know that this byte was not used in DOS 3.3 and
earlier. I don't recall what version started using it. It will be 00 in
versions not using it. There is also a signature at the last two bytes of
the MBR and all boot records of 55h AAh. The BIOS looks for this. Thus, I
do not know what signature you are asking about. both of these and the OEM
ID are signatures.
> The BPB contains information DOS needs about the disk - bytes/sector,
> sectors/cluster, reserved sector count, FAT count, number of entries in
the
> root directory, number of sectors, the media descriptor byte, length of
> tracks and FAT, number of heads, and in V4 upwards, the volume label and
> serial number, plus an officially reserved system ID. DR-DOS FDISK
> incorrectly calculates some of these values, plus it writes a DR OEM ID in
> the system name field. Although this officially is correct, some IBM
issues
> of DOS look for the letters IBM in the system name, and report 'Invalid
> media' otherwise. Also, before DOS v3, the loader used the BIOS's BPB
> rather than the one on the disk, so some DOS v2 issues didn't fill in the
> BPB - these diskettes are unreadable on DOS 3 and up.
Are you saying that DOS 3.0 and later cannot read diskettes formatted with
earlier DOS? If so, that is not true. I can still read and have been able to
read those 160K single sided 5-1/4" floppies formatted with DOS 1.0 and DOS
1.1. The very first version of DOS I used on my first PC was Tandy DOS 3.2.
I used DOS 3.3 when I installed my first hard drive. I could and still can
read the "Inside the IBM PC" by Peter Norton which consists of to floppies.
One is a flippy (a term coined when using a double sided floppy on a single
head floppy drive, you just FLIP the floppy over and read the other side.)
and one single sided floppy. Both disks use the 160K format with only 8
actual sectors per track. Not the later floppies that were formatted with 9
sectors but only used 8. I can still read my DOS 1.0, 1.1, 2.0, 2.11 DOS
floppies.
I have even seen floppies with that area (BPB) totally corrupted and still
read the diskettes.
FDISK does not write the boot sector, it write the MBR. DRDOS FDISK does
also format the drive for some OSes including DOS, but not all filesystems.
But this is the format you are talking about and not the MBR. MSDOS FDISK is
not correct and DRDOS followed the MS crap. MS FDISK screws you out of the
last cylinder of the drive. Gates never could count right. Use Linux FDISK
sometime and make a DOS partition near the end of the drive and tell it to
use the last cylinder, then format it with DOS and see it choke. It may
format it okay, but when you run DOS it does not like it and will complain.
I don't recall if I could format the partition this way or not. Ever since I
low level formatted my first hard drive (Seagate ST-251) I could not find
what happened to one missing cylinder. I still don't know why it cannot use
it, but I finally found it and it is the last cylinder.
I don't recall of having this problem when FDISK formats a partition. I have
used partition sizes from a couple of megabytes to over 1GB and have not
seen a problem. Norton's and PCTools diskeditors show the BPB as being
correct. Of course I am talking about DOS 5.0 and later. Earlier version did
not use all of the information in the BPB and show up as junk. However, I
have not seen any problems with DRDOS 6.0 and later. But I may not have
checked that with all versions of 7.0x. I don't recall because there were
many udates for Novell DOS 7.0 and I did not use all of them. I may have
gotten update 4 the update 9 then update 12, etc. I probably did not use
FDISK with each one. There may have been one or more updates of FDSIK in
these updates that I never used. 14 was the last update I used. I have 15
but the FDISK in it is the same size as 14. I may or may not have used FDISK
from 7.01, 7.02, or 7.02 update. I am pretty sure I did use all of them, but
not certain. There was a problem with loading DOS high with 7.02, so I used
7.01 system files, share and some others from 7.01 and used everything else
from 7.02. Then the 7.02 update to 7.03 fixed the DOS to load into HMA and
replaced at least the SHARE.EXE from 7.01 to 7.02 because 7.01 would not
work with 7.02 and 7.02 update to 7.03. Later I downloaded the full 7.03
which has different size system files that the 7.02 update to 7.03 had.
Lineo still has the update files. I believe the subdirectory name is simply
update. This system files are different than the actuall 7.03 version. They
both will show it to be version 7.03. So from 7.01 through 7.02 update to
7.03, there was some goofy things that happened. Same is true for Novell DoS
7.0 and it's updates. Some updates were good and some not so good. I heard
that 15 was not so good, so I never installed it.
> > The first MS fiasco that I ran across about this was when
> > people tried to upgrade from MS DOS 3.x to MSDOS 5.0.
> > What happened is that people that had MSDOS 3.x installed could
> > not re-partition their drives with MSDOS 5.0 FDISK.
> Probably because DOS 3 didn't know about anything > 32Mb, whereas DOS 4
and
> up use a different partition ID to signify 'DOS Huge' (greater than 32Mb
> partition). MS-DOS 5's FDISK may have forgotten about that.
Yes. The >32MB is called Big DOS. You may be right about that, maybe DOS 5.0
did not distinguish between DOS and Big DOS as later versions did. I never
did use 4.0 (although I did check it out once and dumped it almost
immediately and put 3.3 back on.) (For one thing, I had a 286MB and could
not use it's memory manager so found that the memory it used was more than
what 3.3 used.) (I already had a newer version of PCTools and did not need
the older ones included with 4.0) (Total piece of crap as far as I was
concerned and everyone else I knew did the same thing.)
This is just the type of crap Gates was always doing. Backward compatibility
does not seem to be in his vocabulary. I have seen this numerous times with
MS crap for software. I wasted $100 on Quick Basic 4.0, I could not compile
any of the programs we had written in 3.5! Gates fixed that problem, but it
would cost you another $100 to upgrade to Quick Basic 4.5!!!! Typical gate
greed and crap. Gates even did it to himself with DOS 3.30 when he updated
his own Macro Assembler from 4.0 to 4.1 and compiled 3.3 with 4.1!!!!! Bugs
galore. He had to rewite 3.3 to eliminate these bugs! (Of course he never
did catch them all. He never did get his RESTORE to ever work, he either
stole or bought Pctools BACKUP and RESTORE programs to make it work!) Same
with most of the other vrap he put out.
No wonder other DOSes have some many problems. They probably tried to fix
the crap Gates had and ran into problems because they did not build in the
bugs!!!!
> > Also, Does anyone know what variation of MSDOS is used with the NT
Command
> > Prompt? All I show when I run ver is WINNT 4.0.
> It's called NT-DOS, as far as NT will tell me, and there's no 16-bit code
in
> there - so it's not a DOS variant, just an 'emulator'.
Well there are the DOS commands and a DOS COMMAND.COM file, just cannot fimd
the IO.SYS and MSDOS.SYS files or equivalent. It must be run from the NT
kernel. If so, why didn't they go ahead and developa 32 bit DOS using the
non GUI portions of the NT kernel??????? GREEEEEED that's why, Gates
wanted to FORCE everyone to use WINDOZE and have to spend more money to put
into Gates pocket, that's why!!! Anyway, one of my SI programs lists my DOS
as MS DOS 6.0 from information from the boot sector. I may try running some
of these from within an NT command prompt window and see what they say.
Somewhere, someplace, I think I saw something called NT DOS and was
available separately or someone extracted it.
Pat
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
- Raw text -