|48GX (R) & 48G AURM 4th Ed. erratta|
Message #1 Posted by sbirdasn on 17 Mar 2005, 6:05 p.m.
In the interests of learning more about my 48GX (Rev. R firmware), I've been reading my Advanced User's Reference book from cover to cover (Reads like a dictionary, strange plot... ;) ).
Anyway, several program examples obviously don't work as shown, for various reasons like missing stack arguments, etc. Fine. I can figure out the missing thing and get them to work.
Even the program mode grob entry was figured out (e.g. GXOR example- pg. 3-135), though nowhere in the entire set of manuals is there an explanation of "x" between the grob size values being *inserted* during processing to push it onto the stack (but don't type the "x" yourself, but you see it when you view/edit the program object later though).
But, for my version "R" firmware, the RCLF (pg. 3-262-3) & STOF (3-327-8) commands don't seem to care about the current wordsize as the text would have you believe.
HEX @ show integers in hexadecimal @
-64 SF 64 SF 32 STWS @ set sys & user flg 64, set w size 32 @
RCLF @ system & user flags list on stack @
You will see that the user flag portion does not display on the stack/view/edit modes as having sys & user flags 64 set.
Save the flags list object if you want to continue to test with them later...
Now change word size to 64 then back to 32 to verify that the sys/user flags 64 is still inside the object, but is simply not being displayed when smaller word sizes are set.
Next, do the following (w/ orig flag list on level 1):
32 STWS 64 CF @ set word to 32 (if reqd), clear UF 64 @
STOF @ my calc writes *all* flag bits, man says clears upper ones @
RCLF RCWS 64 SF? -64 SF? @ See what happened... @
Manual says that upper bits above the word size will be cleared, but the STOF writes all bits, regardless of word size. My 48GX now has both system and user flags 64 set, with the word size at 32-bits.
The behavior I describe seems more correct, as you can do in a single step saving/restoring the system flag states without having to remember the original word size separately. (Like RCWS 64 STWS RCLF 2 PICK STWS to get full set without disturbing things, but you will still need original word size to restore things fully again if the manual was right.)
So, when did system flag handling change? Or has it always been this way? This seems like a pretty substantial difference in behavior, if you ask me.
Now, I don't expect this to work if I start manipulating the objects with bitwise operations when the word size is less than 64.
Oh, and they neglect to tell you that word size bits are encoded as (wordsize - 1) i.e. 1 STWS => flag bits 000000b, 64 STWS => flag bits 111111b (Brings up the old 16C's word size = 1 becoming so inarticulate that you use setting word size = 0 to get it back to maximum word size again...)
Any other real howlers you've found?