Hi, Martin Str|mberg wrote:> And given that space in isohdpfx is very limited (432 bytes) perhaps > the right thing might be to not have that xor in there. > But then better safe than sorry, and given that there is space _now_, > why not?I still agree. But while answering Ady's questions i get to a question of my own: Do all six fixed isohdp*.bin variations still fit into 432 bytes ? mbr/Makefile builds among other MBRs: isohdpfx.bin isohdppx.bin isohdpfx_c.bin isohdppx_c.bin isohdpfx_f.bin isohdppx_f.bin Their purpose is explained in the table at http://www.syslinux.org/wiki/index.php?title=Isohybrid#MBR_selection Have a nice day :) Thomas
On Sun, Mar 26, 2017 at 10:13:28PM +0200, Thomas Schmitt via Syslinux wrote:> Do all six fixed isohdp*.bin variations still fit into 432 bytes ? > > mbr/Makefile builds among other MBRs: > isohdpfx.bin isohdppx.bin isohdpfx_c.bin isohdppx_c.bin > isohdpfx_f.bin isohdppx_f.binYes. I make my changes in my syslinux git clone. All of the above is build from isohdpfx.S with different #defines active. Building them runs a check with checksize.pl that fails if they go beyond what's defined in checksize.pl. That does not fail for me. Thomas, if you're interested in the resulting assembly and/or encodings (as you seems to analyse and change the binary code in the resulting .bin files I assume you are) you should really clone the git repo and build it. It's not very hard. Then you can look at the resulting .lst files to see what values the instructions turned into (except for values that are determined at link time). Also you should immediately see the offset that you want to patch instead of needing to search. Another good command is "objdump -D -b binary -m i8086 -M data16,addr16 isohdpfx.bin" if you want to see the assembly code of something compiled for barebones 16-bit x86. -- MartinS
Hi,> Building them [the isohdp*.bin MBRs] > runs a check with checksize.pl that fails if they go beyond what's > defined in checksize.pl.I see. That's why your test MBRs and the two MBRs distributed by Debian all have exactly 432 bytes. So it would scream "too big" if we bonked against the limit.> you should really clone the git > repo and build it. It's not very hard.My binary experiments are intentionally done with simple user means. I want to collect debugging gestures to easily determine whether a failure is about C/H/S addressing.> Another good command is "objdump -D -b binary -m i8086 -M > data16,addr16 isohdpfx.bin"I am using meanwhile objdump -D -b binary -mi386 -Maddr16,data16 "$mbr" 2>&1 | less (learned from stackexchange.com) to verify that my binary findings match the disassembled form. Further objdump ended my riddling about the effective length of an instruction and its operands. Very educational. But in the beginning of this adventure i really searched for recognizable byte patterns in the binary. It's only 432 bytes. (Many of them i know by name meanwhile.) Have a nice day :) Thomas