lib/cpu/opcodes.js
function (cpu, mmu, cc) {
    if (cc) {
        mmu.writeWord(cpu.sp -= 2, cpu.pc + 3);
        cpu.pc = mmu.readWord(cpu.pc + 1);

        return 24;
    }
    cpu.pc += 3;

    return 12;
}
function (cpu, mmu, cc) {
    if (cc) {
        mmu.writeWord(cpu.sp -= 2, cpu.pc + 3);
        cpu.pc = mmu.readWord(cpu.pc + 1);

        return 24;
    }
    cpu.pc += 3;

    return 12;
}
function ( cpu , mmu , cc ) { if ( cc ) { mmu . writeWord ( cpu . sp -= 2 , cpu . pc + 3 ) ; cpu . pc = mmu . readWord ( cpu . pc + 1 ) ; return 24 ; } cpu . pc += 3 ; return 12 ; }
CALL cc,nn

Description:
Call address n if following condition is true:
cc = NZ, Call if Z flag is reset.
cc = Z, Call if Z flag is set.
cc = NC, Call if C flag is reset.
cc = C, Call if C flag is set.

Use with:
nn = two byte immediate value. (LS byte first.)

Opcodes:
Instruction    Parameters    Opcode    Cycles
CALL           NZ,nn         C4        12
CALL           Z,nn          CC        12
CALL           NC,nn         D4        12
CALL           C,nn          DC        12
CALL cc nn