Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void i_sbc(int val)
- {
- int v;
- if (flagM)
- {
- if (flagD)
- {
- v = (regA & 15) - (val & 15) + (flagC ? 1 : 0) - 1;
- if (v < 0)
- v = (v - 6 & 15) - 16;
- int var3 = (regA & 240) - (val & 240) + v;
- if (var3 < 0)
- var3 -= 96;
- flagC = var3 < 100;
- regA = var3 & 255;
- flagO = false;
- }
- else
- {
- v = regA - val + (flagC ? 1 : 0) - 1;
- flagC = (v & 256) == 0;
- flagO = ((v ^ regA) & (v ^ -val) & 128) > 0;
- regA = v & 255;
- }
- }
- else
- {
- v = regA - val + (flagC ? 1 : 0) - 1;
- flagC = (v & 65536) == 0;
- flagO = ((v ^ regA) & (v ^ -val) & 32768) > 0;
- regA = v & 65535;
- }
- upNZ();
- }
Advertisement
Add Comment
Please, Sign In to add comment