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

Reply via email to