Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!samsung!munnari.oz.au!bruce!cechew From: cechew@bruce.cs.monash.OZ.AU (Earl Chew) Newsgroups: comp.os.minix Subject: Re: Shoelace, Boot sector, Partition sector Message-ID: <3308@bruce.cs.monash.OZ.AU> Date: 5 Nov 90 00:04:32 GMT References: <35159@nigel.ee.udel.edu> <3301@bruce.cs.monash.OZ.AU> <609@escom.com> Organization: Monash Uni. Computer Science, Australia Lines: 24 In <609@escom.com> al@escom.com (Al Donaldson) writes: >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 Setting DS=ES=SS:SI to point at the partition table seems like a good idea just to be on the safe side. CS:AX = 0:0x7c00 seems unnecessary to me. The code in the boot sector shouldn't be relying on how it got invoked (except for the parameter passing). Relying on BX = cylinder number seems strange. Besides, you don't gain much if the partition starts in the middle of a cylinder. Passing the parameter table pointer (and drive number) is sufficient. Earl -- Earl Chew, Dept of Computer Science, Monash University, Australia 3168 EMAIL: cechew@bruce.cs.monash.edu.au PHONE: 03 5655447 FAX: 03 5655146 ----------------------------------------------------------------------