Zitat von infuscomus im Beitrag #642 can you hex edit these XP boot loader files to sets the maximum number of global memory descriptors to 512?
xp doesnt work with uefi(except winxp64+bootmgr), no mem descriptors, only short e820 list of mem regions. only in case of very large e820 list, xp has problem
Zitat von infuscomus im Beitrag #638 I looked for the hex values you referenced earlier to fix E820 but could not find exact hex value in either XP SP3, server 2003 or vista 5048 acpi.sys
check acpi.sys win xp sp3, size=187,776, ver 5.1.2600.5512 (xpsp.080413-2111)
Zitat von infuscomus im Beitrag #635 .......... 0xA5 (0x02, X ,Y ,Z) conflict with E820 Memory list, solved (custom acpi.sys) Can I please try your custom acpi.sys to see if it works?
Zitat von diderius6 im Beitrag #381 why acpi.sys 5048 and all those acpi.sys versions for Vista around crashes on XP unfriendly Bios always with the same BSOD 0xA5 (0x03, xxx, C0140008, yyy)
search acpi.sys for "C0140008" string, error in _ValidateArgTypes, _CreateField or _ObjTypeSizeOf
ValidateArgTypes is called after every opcode, it check arg type vs some string code "D", "C", "I", "..." (for example argument ToInteger() can has only 3 types: Integer,String,Buffer and coded as "D")
Zitat von diderius6 im Beitrag #349Yessa, all missmatched dependencys killed from acpi.sys 5365 to Edit: hal.dll is also freed from all evil!
It reminds me of a runner, who gets shot off one foot after the other ) When you kill import, loader will not reference some function to external dll, and when this function called inside acpi.sys, it will call/jmp to zero or something like that.
example: KeStartDynamicProcessor not exist in winxp kernel, you killed import, you need write own func inside acpi.sys or avoid calling it. some funcs like EtwRegister is useless trash and we can avoid calling it without any problem you can't skip important func like IoConnectInterruptEx, it register ISR handler to interrupt processing, as we know acpi has own interrupt/irq line and need this handler
Zitat von diderius6 im Beitrag #339@Mov AX, 0xDEAD Vista 5365 - integers are 32/64 (selectable depending revision of DSDT table, V1=32, V2=64), added Dynamic conversion of types, PDB published. Nice finding, this overcomes any problems with 32 bit <-> 64 bit in acpi.sys. Which version of Windbg do you use for this (Server under XP Windbg?) and where to you find the acpi.pdb for the 5365 version? Did you understand, how the select mechanism for V1, V2 works (can it easy be faked, meaning always V1=32) and the following "Dynamic conversion of types" and can it be implemented (set V1=32) in 5048 acpi.sys version? Dietmar
- any windbg has symbol downloader tool, just C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk.exe /v acpi.sys, result in c:\windows'symbol\ - if revision=v1, all internal integers operation are 32 width, this is compatibility mode with old bioses (acpi 1.x only ???), we still can use all qword* opcodes, i think if we need access to 64bit things, we access only low 32 dword, high is forced to zero - if revision=v2, all ints are 64bit, no limitation, full access to any field/mem - "Dynamic conversion of types" is not integer conv, this is conversion string to buffer or vice versa or some else, i see this conv in handlers of two opcodes: Index(), LogOp(and,or,not)
Zitat von diderius6 im Beitrag #319The ACPI 2.0 word Qword.. I do not find in any acpi.sys.
#define AML_QWORD_OP 0x0e you will never found it, because it has no text presentation, it is opcode for storing 64 bit integer constants see amlcode.h, it show all you need