Documentation for the offsetlen instruction left me unsure whether it shifts the source data or not. testoffsetlen.tasm was uninstructive as its test data is uniform. I assumed it shifts because of the "offset" in the name, but output from my tests seems to indicate it truncates. I'm wondering, is it meant to shift, or shall I correct the documentation?
"offsetlen"
-0-++0
defines a masking window, only trits visible
through the window are written to the destination.
usage:
offsetlen|A,B,C
if A is "off", the remaining trits in the destination are preserved.
if it is "on", they are overwritten with 0.
B is the offset for the window's low-value edge (the right side).
C is the size of the window, the length extending toward high values.
affected operations are read and write to IO and memory.
the window remains active until reset with "offsetlen|off,0,9".
see also: romread* setdata IOread* IOwrite*