An interesting use of the 4004 instructions
Paul Koning
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)+
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
More information about the cctalk
mailing list