@@ -18,6 +18,10 @@ def _eval(self, code):
1818 def regs (self ):
1919 return self .cpu_state .regs
2020
21+ @property
22+ def mem (self ):
23+ return self .cpu_state .mem
24+
2125 def test_cpu_state_ld_a_unknown (self ):
2226 code = """
2327 ld a, (_N)
@@ -349,7 +353,7 @@ def test_ex_de_hl(self):
349353 self .assertEqual (self .regs ['d' ], str (0x12 ))
350354 self .assertEqual (self .regs ['e' ], str (0x34 ))
351355
352- def test_ex_de_hl_unkown (self ):
356+ def test_ex_de_hl_unknown (self ):
353357 code = """
354358 ld hl, (x)
355359 ld de, (y)
@@ -362,3 +366,33 @@ def test_ex_de_hl_unkown(self):
362366 self .assertEqual (self .regs ['l' ], helpers .LO16_val (self .cpu_state .mem ['y' ]))
363367 self .assertEqual (self .regs ['d' ], helpers .HI16_val (self .cpu_state .mem ['x' ]))
364368 self .assertEqual (self .regs ['e' ], helpers .LO16_val (self .cpu_state .mem ['x' ]))
369+
370+ def test_neg_nz (self ):
371+ code = """
372+ xor a
373+ ld a, 1
374+ neg
375+ """
376+ self ._eval (code )
377+ self .assertEqual (self .regs ['a' ], str (0xFF ))
378+ self .assertEqual (self .cpu_state .C , 1 )
379+ self .assertEqual (self .cpu_state .Z , 0 )
380+
381+ def test_neg_z (self ):
382+ code = """
383+ xor a
384+ cp 1
385+ neg
386+ """
387+ self ._eval (code )
388+ self .assertEqual (self .regs ['a' ], str (0 ))
389+ self .assertEqual (self .cpu_state .C , 0 )
390+ self .assertEqual (self .cpu_state .Z , 1 )
391+
392+ def test_ix_neg (self ):
393+ code = """
394+ ld a, (ix-1)
395+ neg
396+ """
397+ self ._eval (code )
398+ self .assertNotEqual (self .regs ['a' ], self .mem ['ix-1' ])
0 commit comments