thanks, I know this hack has a bad name, but it has quite a bit packed in to its 611 bytes, it looks for an existing SLIC, and can move tables, and has a few space saving tricks like self modifying code, and my favorite pushing a return instruction pointer on to the stack then executing a sub routine instead of using a call then a jump.
I got the same thing, the problem is pre vista os's overwrite the area that I have chosen for the interrupt handler, so I will have to find a better place for it, the quick fix is to open other_functions.inc and find the move_handler function then look for this code Code: xor ebx,ebx call URM_scan_ebda_for_zeroes_area and change it to this Code: ;xor ebx,ebx mov ebx, 1 call URM_scan_ebda_for_zeroes_area that will put the interrupt handler in the EBDA, you may have to adjust the EBDA_SCAN_OFFSET in config.ini I had to adjust to 200h to get XP to boot in VMware, I use the SLIC_toolkit's memory access tab to dump the EBDA usually 9f800h and find a large block of zeros and round to the nearest 100h. Code: EBDA_SCAN_OFFSET = 200h EDIT: pending further testing this may be the fix open ws_acpi.inc and change Code: Usefza.deep_scan: mov ebx, 80000h to Code: Usefza.deep_scan: mov ebx, 800h that 800h is right after where the MBR relocates it self and should be safe
the new interrupt handler location seems to be working, since this issue encompassed all WindSLIC projects I updated all versions with the change and updated the links
Updated 5/19/2010 added chipset vendor id check, DISABLE_BIOS_RW can be left at default value, unless you have a spcific problem.
I tried the WindSLIC DVD, and it worked like a charm. Now I've put the same SLIC in the bootmgr directory, and run make.cmd, which seems to produce a "bootmgr" file, but I can't seem to be able to overwrite the original "bootmgr". What's the trick to be able to overwrite it? EDIT: Never mind, figured it out. I just had to take ownership of it, and give my user Full Control in the security permissions. And it works like a charm! From now on this will be my recommended solution to anyone. *Thumbs Up* UPDATE: Hmm. Activation works fine, but for som reason, when I press "Shut Down" in Windows, it no longer actually turns the PC off. Instead, it just seems to do everything it normally does, such as spin down drives, but then just leaves the power running. It worked before installing the custom bootmgr. I'm gonna try the old one, and see if it goes back to normal. If it does, then this is presumably a bug. UPDATE 2: In fact, even pressing F5 when it says "Press F5 to skip" causes the issue to go away. But then again, so does the activation.
Actually, it seems that the bootable DVD also causes the no-shutdown issue. So apparently this is not an issue with the bootmgr patch, but a bug in the SLIC patch itself. Does this happen to everyone, or just me?
Yes, I uninstalled WoW completely before replacing the bootmgr. I even cleaned up by manually deleting its "wow7" folder, and the files it created in the root (grldr, menu.lst, etc).
you can try setting DISABLE_BIOS_RW = 0 in config.ini to 1 it does seem like a ACPI table is getting lost or screwed up.
if you could post the output from the SLIC toolkit that might help example output: Code: Please select the 'Courier' font format to read ! Table NameOEMID&TableIDAddress LenthDescription Table (ACPI 1.0) RSD PTR ACRSYS 0009FD00 20Root System Desc.Pointer | |- RSDTACRSYSACRPRDCT1DFEFC00 44Root System Desc.Table | 00 |- FACP ACRSYSACRPRDCT1DFF3040 116 * 01 |- SLIC ACRSYSACRPRDCT1DFEFE00 374Software Licensing Desc.Table --- Scan Finished ---
I did some more testing, and saved the ACPI table info using RW-Everything in a few different cases. As far as I can tell, there aren't any full ACPI tables missing in the "buggy" one, but I notice that some other changes than just the addition of the SLIC table are present. For example, some changes that I don't know the significance of are made in the "RSD PTR" section, and some info in RSDT seems to have been replaced by something from the SLIC. I also tried to set DISABLE_BIOS_RW to 1, and that actually DOES make the issue go away. Curiously, the ACPI table info that can be seen in RW-Everything when booting with that bootmgr are 100% identical to the unmodified one, but despite that activation still works. I'm guessing there's an explanation for that, though I fail to see the logic of it. I have attached the ACPI table info files in a zip, so you can see the differences for yourself using WinMerge or similar.
Thanks for the complete debugging info, when WindSLIC finds an Intel chipset it tries to set some registers in the chipset to make the area where the RSD PTR writable, that way the RSD PTR wont have to be moved to a writable area, normally it ether works or has no effect, if you can post the mother board make and model I will get the chipset documentation and see if I can fix it or blacklist it.
The motherboard is an ASUS P5Q Deluxe. The chipset is Intel P45 I think. My current BIOS version is 2301 which is currently the latest non-beta, and can be downloaded from Asus.
if you dont mind burring another cd, could you open ws_pcifn.inc and on line 65 change this Code: disp_word_hex_crlf cx,BS_DETAILED Code: disp_dword_hex_crlf ecx,BS_DETAILED then report the full chipset id, should be something like "Chipset vendor ID : XXXX8086" on the first screen when booting from a CD EDIT: you may be able to do this with RW everything OK button on the far left looks like a PCI card Device/Vendor ID0xD1328086 at the top of summery