if (D & 0x80)
D|= ~0xff;
t_mem sreg= ram->get(SREG);
- (signed)result= (signed)D-(signed)K;
+ result= (signed)D-(signed)K;
res= result & 0xff;
sreg= sreg & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_C|BIT_Z);
if (D & 0x80)
D|= ~0xff;
t_mem sreg= ram->get(SREG);
- (signed)result= (signed)D-(signed)K-(sreg&BIT_C)?1:0;
+ result= (signed)D-(signed)K-(sreg&BIT_C)?1:0;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
sreg= sreg & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_C);
if (0x08 & (((~D)&K) | (K&res) | (res&(~D))))
K|= ~0xff;
if (D & 0x80)
D|= ~0xff;
- (signed)result= (signed)D-(signed)K;
+ result= (signed)D-(signed)K;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG) & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_Z|BIT_C);
if (0x08 & (((~D)&K) | (K&res) | (res&(~D))))
if (D & 0x80)
D|= ~0xff;
t_mem sreg= ram->get(SREG);
- (signed)result= (signed)D-(signed)R-(sreg&BIT_C)?1:0;
+ result= (signed)D-(signed)R-(sreg&BIT_C)?1:0;
res= result & 0xff;
sreg= sreg & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_C);
if (D & 0x80)
D|= ~0xff;
t_mem sreg= ram->get(SREG);
- (signed)result= (signed)D-(signed)R-(sreg&BIT_C)?1:0;
+ result= (signed)D-(signed)R-(sreg&BIT_C)?1:0;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
sreg= sreg & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_C);
if (0x08 & (((~D)&R) | (R&res) | (res&(~D))))
D= ram->read(d);
result= D+R;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG);
if (!res)
R|= ~0xff;
if (D & 0x80)
D|= ~0xff;
- (signed)result= (signed)D-(signed)R;
+ result= (signed)D-(signed)R;
res= result & 0xff;
t_mem sreg= ram->get(SREG) & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_Z|BIT_C);
R|= ~0xff;
if (D & 0x80)
D|= ~0xff;
- (signed)result= (signed)D-(signed)R;
+ result= (signed)D-(signed)R;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG) & ~(BIT_H|BIT_S|BIT_V|BIT_N|BIT_Z|BIT_C);
if (0x08 & (((~D)&R) | (R&res) | (res&(~D))))
t_mem sreg= ram->get(SREG);
result= D+R+((sreg&BIT_C)?1:0);
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
if (!res)
sreg|= BIT_Z;
D= ram->read(d);
result= ~D;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG);
if (!res)
D= ram->read(d);
result= (~D)+1;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG);
if (res & (~d) & 0x08)
d= (code&0x1f0)>>4;
t_mem data= ram->read(d)+1;
- ram->write(d, &data);
+ ram->write(d, data);
t_mem sreg= ram->get(SREG);
data= data&0xff;
if (result & 0x40)
result|= 0x80;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
if (res & 0x80)
{
sreg|= BIT_N;
sreg|= BIT_S;
if (!res)
sreg|= BIT_Z;
- ram->write(SREG, &sreg);
+ ram->write(SREG, sreg);
return(resGO);
}
sreg|= (BIT_C|BIT_V|BIT_S);
result= D >> 1;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
if (!res)
sreg|= BIT_Z;
- ram->write(SREG, &sreg);
+ ram->write(SREG, sreg);
return(resGO);
}
}
result= (D >> 1) | oldc?0x80:0;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
if (res & 0x80)
{
sreg|= BIT_N;
sreg|= BIT_S;
if (!res)
sreg|= BIT_Z;
- ram->write(SREG, &sreg);
+ ram->write(SREG, sreg);
return(resGO);
}
D= ram->read(d);
result= D-1;
res= result & 0xff;
- ram->write(d, &res);
+ ram->write(d, res);
t_mem sreg= ram->get(SREG);
if (!res)
result= R*D;
resl= result & 0xff;
resh= (result>>8) & 0xff;
- ram->write(0, &resl);
- ram->write(1, &resh);
+ ram->write(0, resl);
+ ram->write(1, resh);
t_mem sreg= ram->read(SREG) & ~BIT_C;
if (resh & 0x80)
sreg|= BIT_C;
- ram->write(SREG, &sreg);
+ ram->write(SREG, sreg);
tick(1);
return(resGO);
}
result= D+K;
res= result & 0xffff;
t_mem resl= result&0xff, resh= (result>>8)&0xff;
- ram->write(dl+1, &resh);
- ram->write(dl, &resl);
+ ram->write(dl+1, resh);
+ ram->write(dl, resl);
t_mem sreg= ram->get(SREG);
if (!res)
K|= ~0x3f;
if (D & 0x8000)
D|= ~0xffff;
- (signed)result= (signed)D-(signed)K;
+ result= (signed)D-(signed)K;
res= result & 0xffff;
t_mem resl= res&0xff, resh= (res>>8)&0xff;
- ram->write(dl+1, &resh);
- ram->write(dl, &resl);
+ ram->write(dl+1, resh);
+ ram->write(dl, resl);
t_mem sreg= ram->get(SREG) & ~(BIT_S|BIT_V|BIT_N|BIT_Z|BIT_C);
int n= 0, v= 0;