XMS Problem

I have a problem with moving memory from XMS to Conv. memory and the other way around.

The XMS30.txt document says:

ExtMemMoveStruct struc

Length dd ? ; 32-bit number of bytes to transfer

SourceHandle dw ? ; Handle of source block

SourceOffset dd ? ; 32-bit offset into source

DestHandle dw ? ; Handle of destination block

DestOffset dd ? ; 32-bit offset into destination block

ExtMemMoveStruct ends

NOTE: If SourceHandle is set to 0000h, the SourceOffset is interpreted

as a standard segment:offset pair which refers to memory that is

directly accessible by the processor. The segment:offset pair

is stored in Intel DWORD notation. The same is true for DestHandle

and DestOffset.

Now, here's the problem. To test the whole thing I tried to copy the screen segment (0B800h) to XMS and then get it back to the segment.

These are the values I tried to put into SourceOffset:

0B8000000h (Looks like the most correct one)

0000B800h (You do this when you call the XMS driver)

000FD000h (20-bit intel thing)

None of them however work!

Please, I need help here :)


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!