Ejemplo n.º 1
0
Archivo: addq.c Proyecto: lokedhs/ostis
static void addq_l(struct cpu *cpu, int s, int mode)
{
  LONG d,r;

  d = ea_read_long(cpu, mode, 1);
  r = s+d;
  ea_write_long(cpu, mode, r);

  ADD_CYCLE(8);

  cpu_set_flags_add(cpu, 0, d&0x80000000, r&0x80000000, r);
}
Ejemplo n.º 2
0
Archivo: addq.c Proyecto: lokedhs/ostis
static void addq_b(struct cpu *cpu, int s, int mode)
{
  BYTE d,r;

  d = ea_read_byte(cpu, mode, 1);
  r = s+d;
  ea_write_byte(cpu, mode, r);

  ADD_CYCLE(4);

  cpu_set_flags_add(cpu, 0, d&0x80, r&0x80, r);
}
Ejemplo n.º 3
0
Archivo: addq.c Proyecto: lokedhs/ostis
static void addq_w(struct cpu *cpu, int s, int mode)
{
  WORD d,r;

  d = ea_read_word(cpu, mode, 1);
  r = s+d;
  ea_write_word(cpu, mode, r);

  ADD_CYCLE(4);

  cpu_set_flags_add(cpu, 0, d&0x8000, r&0x8000, r);
}
Ejemplo n.º 4
0
Archivo: addi.c Proyecto: nocrew/ostis
static void addi_b(struct cpu *cpu, WORD op)
{
    BYTE s,d,r;

    s = bus_read_word(cpu->pc)&0xff;
    cpu->pc += 2;
    if(op&0x38) {
        ADD_CYCLE(12);
    } else {
        ADD_CYCLE(8);
    }
    d = ea_read_byte(cpu, op&0x3f, 1);
    r = d+s;
    ea_set_prefetch_before_write();
    ea_write_byte(cpu, op&0x3f, r);
    cpu_set_flags_add(cpu, s&0x80, d&0x80, r&0x80, r);
}
Ejemplo n.º 5
0
Archivo: addi.c Proyecto: nocrew/ostis
static void addi_l(struct cpu *cpu, WORD op)
{
    LONG s,d,r;

    s = bus_read_long(cpu->pc);
    cpu->pc += 4;
    if(op&0x38) {
        ADD_CYCLE(20);
    } else {
        ADD_CYCLE(16);
    }
    d = ea_read_long(cpu, op&0x3f, 1);
    r = d+s;
    ea_set_prefetch_before_write();
    ea_write_long(cpu, op&0x3f, r);
    cpu_set_flags_add(cpu, s&0x80000000, d&0x80000000, r&0x80000000, r);
}