Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- case 0xD4: // RCRA - NOT WORKING
- saved_flags = Flags;
- if ((Registers[REGISTER_A] & 0x01) == 0x01)
- {
- Flags = Flags | FLAG_C; // set carry flag
- }
- else
- {
- Flags = Flags & (0xff - FLAG_C); //Clear carry flag
- }
- Registers[REGISTER_A] = (Registers[REGISTER_A] >> 1) & 0x7F;
- if ((saved_flags & FLAG_C) == FLAG_C);
- {
- Registers[REGISTER_A] = Registers[REGISTER_A] | 0x80;
- }
- set_flag_n(Registers[REGISTER_A]);
- set_flag_z(Registers[REGISTER_A]);
- break;
- case 0xD5: // RLCA
- saved_flags = Flags;
- if ((Registers[REGISTER_A] & 0x80) == 0x80)
- {
- Flags = Flags | FLAG_C; // set carry flag
- }
- else
- {
- Flags = Flags & (0xFF - FLAG_C); //Clear carry flag
- }
- Registers[REGISTER_A] = (Registers[REGISTER_A] << 1) & 0xFE;
- if ((saved_flags & FLAG_C) == FLAG_C)
- {
- Registers[REGISTER_A] = Registers[REGISTER_A] | 0x01;
- }
- set_flag_n(Registers[REGISTER_A]);
- set_flag_z(Registers[REGISTER_A]);
- break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement