On Thu, Oct 15, 2015 at 9:48 AM, Robin Vowels <robi...@dodo.com.au> wrote:

​<snip>

>
> The reason is that they wanted the ability to move up to 256 bytes.
> Had zero been a "no-op" as you suggest, then MVC could move up to
> only 255 bytes (1:255).
>

​I can accept that, but the difference between moving 255 vs 256 maximum
seems a bit strange. Well, maybe it's a power of 2 type of thing.​



>
> I agree about the need to move exactly k bytes, where k is given in a
> register.
>
> IBM should have produced a special EXC instruction for characters,
> that did what EX does, but accepts k, the number of bytes to move (or
> compare, etc),
> tests for zero (and performs a no-op if it is), subtracts 1, and then
> executes MVC.
>

​Now that is a very good idea. ​

Going beyond that, I have often wanted a "execute next instruction on
condition". I.e. check the CC value, like a branch does, if the condition
is TRUE, then execute the next instruction, otherwise skip it. I have too
many times had sequences somewhat like:

   LTR R?,R?
   JZ AROUND
   AHI R?,-1
AROUND DS 0H

The z13 has some specialized instructions like this, such as LOC (Load On
Condition) and STOC (STore On Condition).

-- 

Schrodinger's backup: The condition of any backup is unknown until a
restore is attempted.

Yoda of Borg, we are. Futile, resistance is, yes. Assimilated, you will be.

He's about as useful as a wax frying pan.

10 to the 12th power microphones = 1 Megaphone

Maranatha! <><
John McKown

Reply via email to