An interesting use of the 4004 instructions
paulkoning at comcast.net
Thu Dec 15 18:55:35 CST 2016
> On Dec 15, 2016, at 2:52 PM, dwight <dkelvey at hotmail.com> 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)+
; common code
Or a function that indicates a boolean result (say, success/fail) by Carry clear vs. set:
good: tst (pc)+
More information about the cctalk