File tree Expand file tree Collapse file tree
tests/arch/zx48k/optimizer Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -693,6 +693,7 @@ def execute(self, asm_code):
693693 val = - self .getv ('a' )
694694 self .set ('a' , val )
695695 self .Z = int (not val )
696+ self .C = int (not self .Z )
696697 val &= 0xFF
697698 self .S = val >> 7
698699 return
Original file line number Diff line number Diff line change @@ -362,3 +362,25 @@ def test_ex_de_hl_unknown(self):
362362 self .assertEqual (self .regs ['l' ], helpers .LO16_val (self .cpu_state .mem ['y' ]))
363363 self .assertEqual (self .regs ['d' ], helpers .HI16_val (self .cpu_state .mem ['x' ]))
364364 self .assertEqual (self .regs ['e' ], helpers .LO16_val (self .cpu_state .mem ['x' ]))
365+
366+ def test_neg_nz (self ):
367+ code = """
368+ xor a
369+ ld a, 1
370+ neg
371+ """
372+ self ._eval (code )
373+ self .assertEqual (self .regs ['a' ], str (0xFF ))
374+ self .assertEqual (self .cpu_state .C , 1 )
375+ self .assertEqual (self .cpu_state .Z , 0 )
376+
377+ def test_neg_z (self ):
378+ code = """
379+ xor a
380+ cp 1
381+ neg
382+ """
383+ self ._eval (code )
384+ self .assertEqual (self .regs ['a' ], str (0 ))
385+ self .assertEqual (self .cpu_state .C , 0 )
386+ self .assertEqual (self .cpu_state .Z , 1 )
You can’t perform that action at this time.
0 commit comments