Skip to content

Commit d852a1c

Browse files
committed
Fix build
1 parent 34d83b9 commit d852a1c

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/emulator.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -294,18 +294,20 @@ struct Alu {
294294
}
295295

296296
impl Alu {
297-
fn compute(&self, aol: bool, aom: bool, aoh: bool, carry: bool) -> u8 {
297+
fn compute(&self, aol: bool, aom: bool, aoh: bool, sreg: &mut SReg) -> u8 {
298+
let previous = self.primary;
299+
298300
match (aoh, aom, aol) {
299301
(false, false, false) => self.primary.wrapping_add(self.secondary),
300302
(false, false, true) => self.primary.wrapping_sub(self.secondary),
301303
(false, true, false) => self
302304
.primary
303305
.wrapping_add(self.secondary)
304-
.wrapping_add(carry as u8),
306+
.wrapping_add(sreg.contains(SReg::C) as u8),
305307
(false, true, true) => self
306308
.primary
307309
.wrapping_sub(self.secondary)
308-
.wrapping_sub(carry as u8),
310+
.wrapping_sub(sreg.contains(SReg::C) as u8),
309311
(true, false, false) => !(self.primary & self.secondary),
310312
(true, false, true) => self.primary | self.secondary,
311313
_ => 0x00,
@@ -624,7 +626,7 @@ impl State {
624626
cw.contains(ControlWord::AOL),
625627
cw.contains(ControlWord::AOM),
626628
cw.contains(ControlWord::AOH),
627-
self.sreg.contains(SReg::C),
629+
&mut self.sreg,
628630
)
629631
} else if cw.contains(ControlWord::LA) {
630632
match self.addr {

0 commit comments

Comments
 (0)