The Museum of HP Calculators

HP Forum Archive 18

[ Return to Index | Top of Index ]

Which X/Fs normalize Data?
Message #1 Posted by PeterP on 22 Oct 2008, 5:14 p.m.


I vaguely remember that certain X/F do not normalize data when it is saved/recalled into/from X-memory. Does anyone here know which functions do and which ones don't normalize?

Also, is anyone aware of a program that would swap a block of registers from X/M into main-memory, preferably without normalization. Preferably MCODE...

Thanks for any hints and tips!



Re: Which X/Fs normalize Data?
Message #2 Posted by PeterP on 23 Oct 2008, 12:06 a.m.,
in response to message #1 by PeterP

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.

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...




Edited: 23 Oct 2008, 12:26 a.m.

[ Return to Index | Top of Index ]

Go back to the main exhibit hall