On 2015-10-15, at 07:14, John McKown wrote:
>
> I've sometimes thought that it would have been better if the length field
> in the MVC was actually the number of bytes to move. Which would make a
> length of zero essentially be a "no-op". But would be more intuitive. And
> make it easier to put the EX'd MVC "in line". It would also save code and a
> branch if the true length actually was zero. I'm sure that there was
> originally some hardware reason to move one more byte than the number in
> the MVC. Surely the ability to move [0..255] is not really significantly
> less useful than the ability to move [1..256]. I would ask Dr. Amdahl, but
> I don't have his email address handy. [grin/]
>
When moving long arrays with MVC in a loop and the residue with EX... MVC
it may have saved instructions to extract that residue with a masking
operation.
I wonder if the (mis-)behavior of MVC was responsible for:
o "Data Management"s specification that the minimum valid
value of the count in an RDW was 5? ("Using Data Sets"
now supports 4.)
o CMS's prohibition of empty records. In days of yore, I was
able to disable a test with a one-nybble zap, then successfully
read and write empty records with an assembler program. But
empty records caused many CMS utilities to fail badly; often
program check style.
And many programs use an empty record for end-of-information.
(Don't confuse this with the count in the CCW; a VB record
with no data always has an RDW, so is physically nonempty.)
-- gil