Skip to content

Commit adce376

Browse files
committed
Fix comparisons
1 parent 5010a01 commit adce376

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/emulator.rs

+15-3
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,21 @@ impl Alu {
312312
fn execute(&mut self, sreg: &mut SReg, bus: u8, aol: bool, aom: bool, aoh: bool) {
313313
match (aoh, aom, aol) {
314314
(false, false, true) => match self.primary.cmp(&self.secondary) {
315-
Ordering::Less => sreg.insert(SReg::L),
316-
Ordering::Equal => sreg.insert(SReg::E),
317-
Ordering::Greater => sreg.insert(SReg::G),
315+
Ordering::Less => {
316+
sreg.insert(SReg::L);
317+
sreg.remove(SReg::E);
318+
sreg.remove(SReg::G);
319+
},
320+
Ordering::Equal => {
321+
sreg.remove(SReg::L);
322+
sreg.insert(SReg::E);
323+
sreg.remove(SReg::G);
324+
},
325+
Ordering::Greater => {
326+
sreg.remove(SReg::L);
327+
sreg.remove(SReg::E);
328+
sreg.insert(SReg::G);
329+
},
318330
},
319331
(false, true, false) => sreg.set(SReg::Z, self.primary == 0),
320332
(false, true, true) => self.primary = bus,

0 commit comments

Comments
 (0)