mirror of
https://github.com/thiagoauler/apple1.git
synced 2024-11-25 20:32:02 +00:00
implementing a simple adder and subtractor
This commit is contained in:
parent
1a7acdaf95
commit
57159c7484
@ -67,6 +67,35 @@ void fetch_operand()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void adjustNZ(db a)
|
||||||
|
{
|
||||||
|
if (a == 0) { Z_SET; } else { Z_UNSET;}
|
||||||
|
a = a >> 7;
|
||||||
|
if (a == 0) { N_SET; } else { N_UNSET; }
|
||||||
|
}
|
||||||
|
|
||||||
|
db adder(db a, db b)
|
||||||
|
{
|
||||||
|
db r = a + b;
|
||||||
|
|
||||||
|
// todo: adjust carry flag
|
||||||
|
// todo: adjust overflow flag
|
||||||
|
adjustNZ(r);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
db subtractor(db a, db b)
|
||||||
|
{
|
||||||
|
db r = a - b;
|
||||||
|
|
||||||
|
// todo: adjust carry flag
|
||||||
|
// todo: adjust overflow flag
|
||||||
|
adjustNZ(r);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
void adc()
|
void adc()
|
||||||
{
|
{
|
||||||
// add memory to accumalator with carry
|
// add memory to accumalator with carry
|
||||||
|
Loading…
Reference in New Issue
Block a user