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