> On Dec 15, 2016, at 2:52 PM, dwight <[email protected]> wrote:
> 
> I was looking at some disassembled 4004 code when I came across
> 
> a SKIP operation.
> 
> It isn't normally an instruction but If you do a JCN with all the CCCC = 0,
> 
> it will do a NEVER jump.
> 
> This is the equivalent of a SKIP instruction.
> 
> I would suppose a JCN with CCCC = $8000 would be an always jump,
> 
> on page ( not real useful as JUN takes the same cycles and space ).
> 
> I thought at first there was some errors in the code because there
> 
> were JMS to the middle of JCN instruction but then I noticed that there
> 
> were no conditions specified for the JCN. A little thought and I realized
> 
> it was a way to skip over a single byte instruction.

It's a bit like a coding convention I've seen used a lot in PDP-11 code, at 
least in some programs; RSTS/E is full of them.  Consider a function with two 
entry points, where Carry set or clear is used after entry to distinguish the 
two cases.  The two entry points look like this:

        fun1:   tst (pc)+
        fun2:   sec
                ; common code
                bcs  case2
                ; case1...

Or a function that indicates a boolean result (say, success/fail) by Carry 
clear vs. set:

        good:   tst (pc)+
        fail:   sec
                rts  pc

        paul


Reply via email to