Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!zaphod.mps.ohio-state.edu!rpi!uupsi!grebyn!escom!al From: al@escom.com (Al Donaldson) Newsgroups: comp.os.minix Subject: Re: Shoelace, Boot sector, Partition sector Message-ID: <609@escom.com> Date: 2 Nov 90 18:44:47 GMT References: <35159@nigel.ee.udel.edu> <3301@bruce.cs.monash.OZ.AU> Organization: ESCOM Corp., Oakton, VA Lines: 37 In article <3301@bruce.cs.monash.OZ.AU>, cechew@bruce.cs.monash.OZ.AU (Earl Chew) writes: > This is getting confusing. > 1. Currently winiboot passes: > DL = drive to read boot sector from > ES:SI = pointer to partition table entry to boot > 2. Gordon W. Ross says that the Microsoft documentation says: > DS:SI = pointer to partition table entry to boot > 3. Michael Temari says that the Zenith 3.3+ systems uses: > DL = drive to read boot sector from > DS:SI = pointer to partition table entry to boot Earl, excellent analysis. I've got one other data point but I'm not sure how useful it is. A while back I converted Dan Thureen and Glen Overby's loader program to asld and wrote a first stage boot sector for it, all in asld. I turned it over to Glen a couple weeks ago for his review and posting. These two items, bootsec.s (goes in sector 0 of first drive) and loader.x (goes in the boot block of the MINIX hard disk root), use a different convention than listed above. I've had it working for a month now, albeit in a limited configuration (DOS on partition 1 and MINIX root on partition 3), and it works fine. Anyway, the convention used by bootsec.s and loader.x is: | Before booting the 2nd stage loader: | --> set BX = starting cylinder number of partition | --> set SI = partition table entry (relative to 0) | --> directly set segment registers (DS, ES, SS) to zero | --> set up return so 2nd stage starts at CS:AX = 0:7C00 The reason I say I'm not sure of its usefulness is that all I did was to write a boot sector that worked with the original loader program and gave it the registers it needed. Whether these are "standard" or not is debatable, but it works with DOS and MINIX and I can "cd /usr/src/tools; make hdboot" and it goes. Al