X-Apparently-From: Message-ID: <001601c041bf$4c924ff0$6f1e0404@dbcooper> From: "Patrick Moran" To: References: <00b801c02814$cc72b3a0$0400000a AT alain-nb> <01d601c04023$ddf751e0$cb881004 AT dbcooper> <005301c04062$9af82420$11fea8c0 AT dell> Subject: Re: DRDOS FDISK Date: Sat, 28 Oct 2000 21:27:44 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.3018.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.3018.1300 Reply-To: opendos AT delorie DOT com ----- Original Message ----- From: "Ben A L Jemmett" To: 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