Posts: 564
Threads: 72
Joined: Sep 2005
Dear Peter,
As it turns out this information is available in a paragraph on page 182 of Keith Jarret's Extended Functions Made Easy book.
Quote:
GetX, SaveX, GetR, SaveR and GetRX do not normalize at all. The SaveRX and RegSwap functions normalize both upper and lower extremes of the data register block used. The RegMove operation normalizes only the topmost data register used.
I am not aware of any REGSWAP function that swaps between X/M and normal user memory. However the same book has a very good description of the functionality of RegSwap and RegMove on pages 76ff. And, if I remember correctly, you have a searchable VASM of the X/F module and know a little bit of MCODE. A quick search of the VASM for the word 'REGSWAP' brings up right away the entry point [RGMV] at 1367oct in the fourth quad of the X/F module.
This function has various flags which guide its behavior. It appears they would allow a swap or move between normal and X/F memory. One naturally has to write some sort of wrapper to make sure the data is save on X/M etc but, with some luck and lots of patience, you might actually be able to write the desired MCODE function yourself...
HTH
Cheers
Peter
Edited: 23 Oct 2008, 12:26 a.m.