Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Everything stay in same segment and the code run at ORG $7C00. But when I change .Buffer_Off, .Buffer_Seg and .BufferSize to 0, it works and return PXE_EXIT_SUCCESS. Anyone knows about this problem? Also, I running it on ASRock P4i45GV with RTL8139 onboard.
The PXE Entry Point uses the Pascal calling convention - push the parameters on the stack, far call the entry point, clean up the stack - while the older PXENV+ Entry Point uses registers.
I don't know if that's the cause of your problem but it's better to check.
> .BufferSize to 0, it works
What do you mean when you say 'it works' ? As I think, call with buffer size = 0 would return no data.
Then, could you post values of the constants that you use?
Nable wrote:What do you mean when you say 'it works' ?
When I set BufferSize, Buffer_Off and Buffer_Seg to 0, it returned PXENV_EXIT_SUCCESS in AX and the address of bootph was fill into t_PXENV_GET_CACHED_INFO structure.