grub4dos
grub4dos copied to clipboard
grub4efi - call Fn.42 function not compatible with grub4dos
Originally old grub4dos had Fn.42 params as [start] [offset] [length] but then grub4dos 0.4.6a changed params to [displayaddLow] [displayaddHi] [start] [length]
Here is grub4dos 0.4.6a example

grub4efi still uses old version of Fn.42
Please can you update Fn.42 in grub4efi to be compatible with grub4dos 0.4.6a.
call Fn.42 的原型是 void hexdump(grub_u64_t ofs,char* buf,int len);
在32位系统,call Fn.42 的第一个参数 ofs 是64位,因此需要占用 2 个位置,也就是 [OfsLow] [OfsHi]。 在64位系统,call Fn.42 的第一个参数 ofs 是64位,因此只需要占用 1 个位置,也就是 [Ofs] 。
这一点需要格外注意。在 64 位系统,call Fn.nn 后面的参数都是64位的(当然32位包含在内)。
好在使用 grub_u64_t 定义的参数不多,都是有关内存的。
在64位系统,call Fn.42 的第一个参数 ofs 是64位,因此只需要占用 1 个位置,也就是 [Ofs] 。
It only NEEDS to occupy 1 position, but it is not compatible
How do you suggest I write a .bat file which will display memory locations using Fn.42 function calls which will work on all versions of grub4dos and grub4efi (32 and 64)?
e.g. displaysectors.bat