This brings the assembly slightly more into line with GRUB's C code, and execution now reaches the end of wubildr.mbr. However, there's still no observable output from wubildr, so either the wrong code is being loaded by wubildr.mbr, the jump to wubildr is failing somehow, or something is failing early on in wubildr.
I'll see if I can insert a small amount of code into GRUB's startup sequence to narrow this down further.
This brings the assembly slightly more into line with GRUB's C code, and execution now reaches the end of wubildr.mbr. However, there's still no observable output from wubildr, so either the wrong code is being loaded by wubildr.mbr, the jump to wubildr is failing somehow, or something is failing early on in wubildr.
I'll see if I can insert a small amount of code into GRUB's startup sequence to narrow this down further.
--- ntfsbs.S
+++ ntfsbs.S
@@ -819,6 +819,8 @@ ntfs_find_attr:
orb $NT_FG_ALST, nt_flag
testb $NT_FG_MMFT, nt_flag
jz 6f
+ cmpb $AT_DATA, %al
+ jnz 6f
call ntfs_fix_mmft
6:
movw %bx, %si