Fixed half carry in Z80

This commit is contained in:
transistor 2023-05-13 11:55:13 -07:00
parent cf4e31454b
commit c97b3b8aca
5 changed files with 1357 additions and 37 deletions

View File

@ -173,8 +173,8 @@ impl Z80 {
let src = self.get_target_value(target)?; let src = self.get_target_value(target)?;
let acc = self.get_register_value(Register::A); let acc = self.get_register_value(Register::A);
let (result, carry, overflow) = sub_bytes(acc, src); let (result, carry, overflow, half_carry) = sub_bytes(acc, src);
self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, (result & 0x10) != 0); self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, half_carry);
}, },
//Instruction::CPD => { //Instruction::CPD => {
//}, //},
@ -195,16 +195,16 @@ impl Z80 {
Instruction::DEC16(regpair) => { Instruction::DEC16(regpair) => {
let value = self.get_register_pair_value(regpair); let value = self.get_register_pair_value(regpair);
let (result, _, _) = sub_words(value, 1); let (result, _, _, _) = sub_words(value, 1);
self.set_register_pair_value(regpair, result); self.set_register_pair_value(regpair, result);
}, },
Instruction::DEC8(target) => { Instruction::DEC8(target) => {
let value = self.get_target_value(target)?; let value = self.get_target_value(target)?;
let (result, _, overflow) = sub_bytes(value, 1); let (result, _, overflow, half_carry) = sub_bytes(value, 1);
let carry = self.get_flag(Flags::Carry); // Preserve the carry bit, according to Z80 reference let carry = self.get_flag(Flags::Carry); // Preserve the carry bit, according to Z80 reference
self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, (result & 0x10) != 0); self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, half_carry);
self.set_target_value(target, result)?; self.set_target_value(target, result)?;
}, },
@ -266,9 +266,9 @@ impl Z80 {
Instruction::INC8(target) => { Instruction::INC8(target) => {
let value = self.get_target_value(target)?; let value = self.get_target_value(target)?;
let (result, _, overflow, _) = add_bytes(value, 1); let (result, _, overflow, half_carry) = add_bytes(value, 1);
let carry = self.get_flag(Flags::Carry); // Preserve the carry bit, according to Z80 reference let carry = self.get_flag(Flags::Carry); // Preserve the carry bit, according to Z80 reference
self.set_arithmetic_op_flags(result as u16, Size::Byte, false, carry, overflow, (result & 0x10) != 0); self.set_arithmetic_op_flags(result as u16, Size::Byte, false, carry, overflow, half_carry);
self.set_target_value(target, result)?; self.set_target_value(target, result)?;
}, },
@ -347,8 +347,8 @@ impl Z80 {
Instruction::NEG => { Instruction::NEG => {
let acc = self.get_register_value(Register::A); let acc = self.get_register_value(Register::A);
let (result, carry, overflow) = sub_bytes(0, acc); let (result, carry, overflow, half_carry) = sub_bytes(0, acc);
self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, (acc & 0x10) != 0 && (result & 0x10) == 0); self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, half_carry);
self.set_register_value(Register::A, result); self.set_register_value(Register::A, result);
}, },
@ -484,9 +484,9 @@ impl Z80 {
let src = self.get_target_value(target)?; let src = self.get_target_value(target)?;
let acc = self.get_register_value(Register::A); let acc = self.get_register_value(Register::A);
let (result1, carry1, overflow1) = sub_bytes(acc, src); let (result1, carry1, overflow1, half_carry1) = sub_bytes(acc, src);
let (result2, carry2, overflow2) = sub_bytes(result1, self.get_flag(Flags::Carry) as u8); let (result2, carry2, overflow2, half_carry2) = sub_bytes(result1, self.get_flag(Flags::Carry) as u8);
self.set_arithmetic_op_flags(result2 as u16, Size::Byte, true, carry1 | carry2, overflow1 ^ overflow2, (result2 & 0x10) != 0); self.set_arithmetic_op_flags(result2 as u16, Size::Byte, true, carry1 | carry2, overflow1 ^ overflow2, half_carry1 | half_carry2);
self.set_register_value(Register::A, result2); self.set_register_value(Register::A, result2);
}, },
@ -494,9 +494,9 @@ impl Z80 {
let src = self.get_register_pair_value(src_pair); let src = self.get_register_pair_value(src_pair);
let dest = self.get_register_pair_value(dest_pair); let dest = self.get_register_pair_value(dest_pair);
let (result1, carry1, overflow1) = sub_words(dest, self.get_flag(Flags::Carry) as u16); let (result1, carry1, overflow1, half_carry1) = sub_words(dest, self.get_flag(Flags::Carry) as u16);
let (result2, carry2, overflow2) = sub_words(result1, src); let (result2, carry2, overflow2, half_carry2) = sub_words(result1, src);
self.set_arithmetic_op_flags(result2, Size::Word, true, carry1 | carry2, overflow1 ^ overflow2, (result2 & 0x10) != 0); self.set_arithmetic_op_flags(result2, Size::Word, true, carry1 | carry2, overflow1 ^ overflow2, half_carry1 | half_carry2);
self.set_register_pair_value(dest_pair, result2); self.set_register_pair_value(dest_pair, result2);
}, },
@ -558,8 +558,8 @@ impl Z80 {
let src = self.get_target_value(target)?; let src = self.get_target_value(target)?;
let acc = self.get_register_value(Register::A); let acc = self.get_register_value(Register::A);
let (result, carry, overflow) = sub_bytes(acc, src); let (result, carry, overflow, half_carry) = sub_bytes(acc, src);
self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, (result & 0x10) != 0); self.set_arithmetic_op_flags(result as u16, Size::Byte, true, carry, overflow, half_carry);
self.set_register_value(Register::A, result); self.set_register_value(Register::A, result);
}, },
@ -859,28 +859,29 @@ impl Z80 {
fn add_bytes(operand1: u8, operand2: u8) -> (u8, bool, bool, bool) { fn add_bytes(operand1: u8, operand2: u8) -> (u8, bool, bool, bool) {
let (result, carry) = operand1.overflowing_add(operand2); let (result, carry) = operand1.overflowing_add(operand2);
let overflow = (operand1 & 0x80) == (operand2 & 0x80) && (operand1 & 0x80) != (result & 0x80); let overflow = (operand1 & 0x80) == (operand2 & 0x80) && (operand1 & 0x80) != (result & 0x80);
let half_carry = (operand1 & 0x10) != 0 && (result & 0x10) == 0; let half_carry = (operand1 & 0x0F) + (operand2 & 0x0F) >= 0x10;
(result, carry, overflow, half_carry) (result, carry, overflow, half_carry)
} }
fn add_words(operand1: u16, operand2: u16) -> (u16, bool, bool, bool) { fn add_words(operand1: u16, operand2: u16) -> (u16, bool, bool, bool) {
let (result, carry) = operand1.overflowing_add(operand2); let (result, carry) = operand1.overflowing_add(operand2);
let overflow = (operand1 & 0x8000) == (operand2 & 0x8000) && (operand1 & 0x8000) != (result & 0x8000); let overflow = (operand1 & 0x8000) == (operand2 & 0x8000) && (operand1 & 0x8000) != (result & 0x8000);
// TODO this is probably still wrong let half_carry = (operand1 & 0x0FFF) + (operand2 & 0x0FFF) >= 0x1000;
let half_carry = (operand1 & 0x10) != 0 && (result & 0x10) == 0;
(result, carry, overflow, half_carry) (result, carry, overflow, half_carry)
} }
fn sub_bytes(operand1: u8, operand2: u8) -> (u8, bool, bool) { fn sub_bytes(operand1: u8, operand2: u8) -> (u8, bool, bool, bool) {
let (result, carry) = operand1.overflowing_sub(operand2); let (result, carry) = operand1.overflowing_sub(operand2);
let overflow = (operand1 & 0x80) != (operand2 & 0x80) && (operand1 & 0x80) != (result & 0x80); let overflow = (operand1 & 0x80) != (operand2 & 0x80) && (operand1 & 0x80) != (result & 0x80);
(result, carry, overflow) let half_carry = (operand1 & 0x0F) < (operand2 & 0x0F);
(result, carry, overflow, half_carry)
} }
fn sub_words(operand1: u16, operand2: u16) -> (u16, bool, bool) { fn sub_words(operand1: u16, operand2: u16) -> (u16, bool, bool, bool) {
let (result, carry) = operand1.overflowing_sub(operand2); let (result, carry) = operand1.overflowing_sub(operand2);
let overflow = (operand1 & 0x8000) != (operand2 & 0x8000) && (operand1 & 0x8000) != (result & 0x8000); let overflow = (operand1 & 0x8000) != (operand2 & 0x8000) && (operand1 & 0x8000) != (result & 0x8000);
(result, carry, overflow) let half_carry = (operand1 & 0x0FFF) < (operand2 & 0x0FFF);
(result, carry, overflow, half_carry)
} }
#[inline(always)] #[inline(always)]

View File

@ -1,4 +1,4 @@
Last run on 2023-05-13 at commit d8638c6f82f45f6235784f96d8f5eb1a766bad52 Last run on 2023-05-13 at commit cf4e31454b417b361b70fcbf82edf6a1daf62eb8
00.json completed, all passed! 00.json completed, all passed!
01.json completed, all passed! 01.json completed, all passed!
@ -552,7 +552,7 @@ ed 5b.json completed, all passed!
ed 5c.json completed, all passed! ed 5c.json completed, all passed!
ed 5d.json completed: 0 passed, 1000 FAILED ed 5d.json completed: 0 passed, 1000 FAILED
ed 5e.json completed, all passed! ed 5e.json completed, all passed!
ed 5f.json completed: 2 passed, 998 FAILED ed 5f.json completed: 0 passed, 1000 FAILED
ed 60.json completed: 0 passed, 1000 FAILED ed 60.json completed: 0 passed, 1000 FAILED
ed 61.json completed: 0 passed, 1000 FAILED ed 61.json completed: 0 passed, 1000 FAILED
ed 62.json completed, all passed! ed 62.json completed, all passed!
@ -655,5 +655,5 @@ fd fe.json completed: 0 passed, 1000 FAILED
fe.json completed, all passed! fe.json completed, all passed!
ff.json completed, all passed! ff.json completed, all passed!
passed: 545965, failed: 108035, total 83% passed: 545963, failed: 108037, total 83%
completed in 10m 35s completed in 10m 48s

View File

@ -0,0 +1,659 @@
Last run on 2023-05-13 at commit cf4e31454b417b361b70fcbf82edf6a1daf62eb8
00.json completed, all passed!
01.json completed, all passed!
02.json completed, all passed!
03.json completed, all passed!
04.json completed, all passed!
05.json completed: 505 passed, 495 FAILED
06.json completed, all passed!
07.json completed, all passed!
08.json completed, all passed!
09.json completed: 483 passed, 517 FAILED
0a.json completed, all passed!
0b.json completed, all passed!
0c.json completed, all passed!
0d.json completed: 499 passed, 501 FAILED
0e.json completed, all passed!
0f.json completed, all passed!
10.json completed, all passed!
100.json completed, all passed!
101.json completed, all passed!
11.json completed, all passed!
12.json completed, all passed!
13.json completed, all passed!
14.json completed, all passed!
15.json completed: 486 passed, 514 FAILED
16.json completed, all passed!
17.json completed, all passed!
18.json completed, all passed!
19.json completed: 501 passed, 499 FAILED
1a.json completed, all passed!
1b.json completed, all passed!
1c.json completed, all passed!
1d.json completed: 515 passed, 485 FAILED
1e.json completed, all passed!
1f.json completed, all passed!
20.json completed, all passed!
21.json completed, all passed!
22.json completed: 999 passed, 1 FAILED
23.json completed, all passed!
24.json completed, all passed!
25.json completed: 512 passed, 488 FAILED
26.json completed, all passed!
27.json completed: 0 passed, 1000 FAILED
28.json completed, all passed!
29.json completed: 498 passed, 502 FAILED
2a.json completed, all passed!
2b.json completed, all passed!
2c.json completed, all passed!
2d.json completed: 498 passed, 502 FAILED
2e.json completed, all passed!
2f.json completed, all passed!
30.json completed, all passed!
31.json completed, all passed!
32.json completed, all passed!
33.json completed, all passed!
34.json completed, all passed!
35.json completed: 504 passed, 496 FAILED
36.json completed, all passed!
37.json completed, all passed!
38.json completed, all passed!
39.json completed: 493 passed, 507 FAILED
3a.json completed, all passed!
3b.json completed, all passed!
3c.json completed, all passed!
3d.json completed: 491 passed, 509 FAILED
3e.json completed, all passed!
3f.json completed, all passed!
40.json completed, all passed!
41.json completed, all passed!
42.json completed, all passed!
43.json completed, all passed!
44.json completed, all passed!
45.json completed, all passed!
46.json completed, all passed!
47.json completed, all passed!
48.json completed, all passed!
49.json completed, all passed!
4a.json completed, all passed!
4b.json completed, all passed!
4c.json completed, all passed!
4d.json completed, all passed!
4e.json completed, all passed!
4f.json completed, all passed!
50.json completed, all passed!
51.json completed, all passed!
52.json completed, all passed!
53.json completed, all passed!
54.json completed, all passed!
55.json completed, all passed!
56.json completed, all passed!
57.json completed, all passed!
58.json completed, all passed!
59.json completed, all passed!
5a.json completed, all passed!
5b.json completed, all passed!
5c.json completed, all passed!
5d.json completed, all passed!
5e.json completed, all passed!
5f.json completed, all passed!
60.json completed, all passed!
61.json completed, all passed!
62.json completed, all passed!
63.json completed, all passed!
64.json completed, all passed!
65.json completed, all passed!
66.json completed, all passed!
67.json completed, all passed!
68.json completed, all passed!
69.json completed, all passed!
6a.json completed, all passed!
6b.json completed, all passed!
6c.json completed, all passed!
6d.json completed, all passed!
6e.json completed, all passed!
6f.json completed, all passed!
70.json completed, all passed!
71.json completed, all passed!
72.json completed, all passed!
73.json completed, all passed!
74.json completed, all passed!
75.json completed, all passed!
76.json completed, all passed!
77.json completed, all passed!
78.json completed, all passed!
79.json completed, all passed!
7a.json completed, all passed!
7b.json completed, all passed!
7c.json completed, all passed!
7d.json completed, all passed!
7e.json completed, all passed!
7f.json completed, all passed!
80.json completed: 534 passed, 466 FAILED
81.json completed: 501 passed, 499 FAILED
82.json completed: 467 passed, 533 FAILED
83.json completed: 500 passed, 500 FAILED
84.json completed: 505 passed, 495 FAILED
85.json completed: 492 passed, 508 FAILED
86.json completed: 493 passed, 507 FAILED
87.json completed: 484 passed, 516 FAILED
88.json completed: 499 passed, 501 FAILED
89.json completed: 491 passed, 509 FAILED
8a.json completed: 505 passed, 495 FAILED
8b.json completed: 490 passed, 510 FAILED
8c.json completed: 517 passed, 483 FAILED
8d.json completed: 511 passed, 489 FAILED
8e.json completed: 532 passed, 468 FAILED
8f.json completed: 506 passed, 494 FAILED
90.json completed: 493 passed, 507 FAILED
91.json completed: 479 passed, 521 FAILED
92.json completed: 487 passed, 513 FAILED
93.json completed: 498 passed, 502 FAILED
94.json completed: 511 passed, 489 FAILED
95.json completed: 535 passed, 465 FAILED
96.json completed: 508 passed, 492 FAILED
97.json completed, all passed!
98.json completed: 506 passed, 494 FAILED
99.json completed: 497 passed, 503 FAILED
9a.json completed: 502 passed, 498 FAILED
9b.json completed: 499 passed, 501 FAILED
9c.json completed: 488 passed, 512 FAILED
9d.json completed: 501 passed, 499 FAILED
9e.json completed: 465 passed, 535 FAILED
9f.json completed, all passed!
a0.json completed, all passed!
a1.json completed, all passed!
a2.json completed, all passed!
a3.json completed, all passed!
a4.json completed, all passed!
a5.json completed, all passed!
a6.json completed, all passed!
a7.json completed, all passed!
a8.json completed, all passed!
a9.json completed, all passed!
aa.json completed, all passed!
ab.json completed, all passed!
ac.json completed, all passed!
ad.json completed, all passed!
ae.json completed, all passed!
af.json completed, all passed!
b0.json completed, all passed!
b1.json completed, all passed!
b2.json completed, all passed!
b3.json completed, all passed!
b4.json completed, all passed!
b5.json completed, all passed!
b6.json completed, all passed!
b7.json completed, all passed!
b8.json completed: 510 passed, 490 FAILED
b9.json completed: 488 passed, 512 FAILED
ba.json completed: 514 passed, 486 FAILED
bb.json completed: 498 passed, 502 FAILED
bc.json completed: 507 passed, 493 FAILED
bd.json completed: 511 passed, 489 FAILED
be.json completed: 499 passed, 501 FAILED
bf.json completed, all passed!
c0.json completed, all passed!
c1.json completed, all passed!
c2.json completed, all passed!
c3.json completed, all passed!
c4.json completed, all passed!
c5.json completed, all passed!
c6.json completed: 511 passed, 489 FAILED
c7.json completed, all passed!
c8.json completed, all passed!
c9.json completed, all passed!
ca.json completed, all passed!
cb 00.json completed, all passed!
cb 01.json completed, all passed!
cb 02.json completed, all passed!
cb 03.json completed, all passed!
cb 04.json completed, all passed!
cb 05.json completed, all passed!
cb 06.json completed, all passed!
cb 07.json completed, all passed!
cb 08.json completed, all passed!
cb 09.json completed, all passed!
cb 0a.json completed, all passed!
cb 0b.json completed, all passed!
cb 0c.json completed, all passed!
cb 0d.json completed, all passed!
cb 0e.json completed, all passed!
cb 0f.json completed, all passed!
cb 10.json completed, all passed!
cb 11.json completed, all passed!
cb 12.json completed, all passed!
cb 13.json completed, all passed!
cb 14.json completed, all passed!
cb 15.json completed, all passed!
cb 16.json completed, all passed!
cb 17.json completed, all passed!
cb 18.json completed, all passed!
cb 19.json completed, all passed!
cb 1a.json completed, all passed!
cb 1b.json completed, all passed!
cb 1c.json completed, all passed!
cb 1d.json completed, all passed!
cb 1e.json completed, all passed!
cb 1f.json completed, all passed!
cb 20.json completed, all passed!
cb 21.json completed, all passed!
cb 22.json completed, all passed!
cb 23.json completed, all passed!
cb 24.json completed, all passed!
cb 25.json completed, all passed!
cb 26.json completed, all passed!
cb 27.json completed, all passed!
cb 28.json completed, all passed!
cb 29.json completed, all passed!
cb 2a.json completed, all passed!
cb 2b.json completed, all passed!
cb 2c.json completed, all passed!
cb 2d.json completed, all passed!
cb 2e.json completed, all passed!
cb 2f.json completed, all passed!
cb 38.json completed, all passed!
cb 39.json completed, all passed!
cb 3a.json completed, all passed!
cb 3b.json completed, all passed!
cb 3c.json completed, all passed!
cb 3d.json completed, all passed!
cb 3e.json completed, all passed!
cb 3f.json completed, all passed!
cb 40.json completed: 244 passed, 756 FAILED
cb 41.json completed: 238 passed, 762 FAILED
cb 42.json completed: 262 passed, 738 FAILED
cb 43.json completed: 223 passed, 777 FAILED
cb 44.json completed: 244 passed, 756 FAILED
cb 45.json completed: 253 passed, 747 FAILED
cb 46.json completed: 239 passed, 761 FAILED
cb 47.json completed: 249 passed, 751 FAILED
cb 48.json completed: 256 passed, 744 FAILED
cb 49.json completed: 244 passed, 756 FAILED
cb 4a.json completed: 234 passed, 766 FAILED
cb 4b.json completed: 250 passed, 750 FAILED
cb 4c.json completed: 252 passed, 748 FAILED
cb 4d.json completed: 248 passed, 752 FAILED
cb 4e.json completed: 254 passed, 746 FAILED
cb 4f.json completed: 253 passed, 747 FAILED
cb 50.json completed: 256 passed, 744 FAILED
cb 51.json completed: 268 passed, 732 FAILED
cb 52.json completed: 261 passed, 739 FAILED
cb 53.json completed: 281 passed, 719 FAILED
cb 54.json completed: 238 passed, 762 FAILED
cb 55.json completed: 243 passed, 757 FAILED
cb 56.json completed: 254 passed, 746 FAILED
cb 57.json completed: 263 passed, 737 FAILED
cb 58.json completed: 252 passed, 748 FAILED
cb 59.json completed: 244 passed, 756 FAILED
cb 5a.json completed: 254 passed, 746 FAILED
cb 5b.json completed: 242 passed, 758 FAILED
cb 5c.json completed: 233 passed, 767 FAILED
cb 5d.json completed: 256 passed, 744 FAILED
cb 5e.json completed: 256 passed, 744 FAILED
cb 5f.json completed: 258 passed, 742 FAILED
cb 60.json completed: 265 passed, 735 FAILED
cb 61.json completed: 236 passed, 764 FAILED
cb 62.json completed: 258 passed, 742 FAILED
cb 63.json completed: 256 passed, 744 FAILED
cb 64.json completed: 231 passed, 769 FAILED
cb 65.json completed: 234 passed, 766 FAILED
cb 66.json completed: 252 passed, 748 FAILED
cb 67.json completed: 251 passed, 749 FAILED
cb 68.json completed: 237 passed, 763 FAILED
cb 69.json completed: 251 passed, 749 FAILED
cb 6a.json completed: 253 passed, 747 FAILED
cb 6b.json completed: 265 passed, 735 FAILED
cb 6c.json completed: 236 passed, 764 FAILED
cb 6d.json completed: 230 passed, 770 FAILED
cb 6e.json completed: 237 passed, 763 FAILED
cb 6f.json completed: 264 passed, 736 FAILED
cb 70.json completed: 245 passed, 755 FAILED
cb 71.json completed: 238 passed, 762 FAILED
cb 72.json completed: 248 passed, 752 FAILED
cb 73.json completed: 261 passed, 739 FAILED
cb 74.json completed: 260 passed, 740 FAILED
cb 75.json completed: 247 passed, 753 FAILED
cb 76.json completed: 252 passed, 748 FAILED
cb 77.json completed: 238 passed, 762 FAILED
cb 78.json completed: 243 passed, 757 FAILED
cb 79.json completed: 242 passed, 758 FAILED
cb 7a.json completed: 262 passed, 738 FAILED
cb 7b.json completed: 246 passed, 754 FAILED
cb 7c.json completed: 256 passed, 744 FAILED
cb 7d.json completed: 251 passed, 749 FAILED
cb 7e.json completed: 258 passed, 742 FAILED
cb 7f.json completed: 260 passed, 740 FAILED
cb 80.json completed, all passed!
cb 81.json completed, all passed!
cb 82.json completed, all passed!
cb 83.json completed, all passed!
cb 84.json completed, all passed!
cb 85.json completed, all passed!
cb 86.json completed, all passed!
cb 87.json completed, all passed!
cb 88.json completed, all passed!
cb 89.json completed, all passed!
cb 8a.json completed, all passed!
cb 8b.json completed, all passed!
cb 8c.json completed, all passed!
cb 8d.json completed, all passed!
cb 8e.json completed, all passed!
cb 8f.json completed, all passed!
cb 90.json completed, all passed!
cb 91.json completed, all passed!
cb 92.json completed, all passed!
cb 93.json completed, all passed!
cb 94.json completed, all passed!
cb 95.json completed, all passed!
cb 96.json completed, all passed!
cb 97.json completed, all passed!
cb 98.json completed, all passed!
cb 99.json completed, all passed!
cb 9a.json completed, all passed!
cb 9b.json completed, all passed!
cb 9c.json completed, all passed!
cb 9d.json completed, all passed!
cb 9e.json completed, all passed!
cb 9f.json completed, all passed!
cb a0.json completed, all passed!
cb a1.json completed, all passed!
cb a2.json completed, all passed!
cb a3.json completed, all passed!
cb a4.json completed, all passed!
cb a5.json completed, all passed!
cb a6.json completed, all passed!
cb a7.json completed, all passed!
cb a8.json completed, all passed!
cb a9.json completed, all passed!
cb aa.json completed, all passed!
cb ab.json completed, all passed!
cb ac.json completed, all passed!
cb ad.json completed, all passed!
cb ae.json completed, all passed!
cb af.json completed, all passed!
cb b0.json completed, all passed!
cb b1.json completed, all passed!
cb b2.json completed, all passed!
cb b3.json completed, all passed!
cb b4.json completed, all passed!
cb b5.json completed, all passed!
cb b6.json completed, all passed!
cb b7.json completed, all passed!
cb b8.json completed, all passed!
cb b9.json completed, all passed!
cb ba.json completed, all passed!
cb bb.json completed, all passed!
cb bc.json completed, all passed!
cb bd.json completed, all passed!
cb be.json completed, all passed!
cb bf.json completed, all passed!
cb c0.json completed, all passed!
cb c1.json completed, all passed!
cb c2.json completed, all passed!
cb c3.json completed, all passed!
cb c4.json completed, all passed!
cb c5.json completed, all passed!
cb c6.json completed, all passed!
cb c7.json completed, all passed!
cb c8.json completed, all passed!
cb c9.json completed, all passed!
cb ca.json completed, all passed!
cb cb.json completed, all passed!
cb cc.json completed, all passed!
cb cd.json completed, all passed!
cb ce.json completed, all passed!
cb cf.json completed, all passed!
cb d0.json completed, all passed!
cb d1.json completed, all passed!
cb d2.json completed, all passed!
cb d3.json completed, all passed!
cb d4.json completed, all passed!
cb d5.json completed, all passed!
cb d6.json completed, all passed!
cb d7.json completed, all passed!
cb d8.json completed, all passed!
cb d9.json completed, all passed!
cb da.json completed, all passed!
cb db.json completed, all passed!
cb dc.json completed, all passed!
cb dd.json completed, all passed!
cb de.json completed, all passed!
cb df.json completed, all passed!
cb e0.json completed, all passed!
cb e1.json completed, all passed!
cb e2.json completed, all passed!
cb e3.json completed, all passed!
cb e4.json completed, all passed!
cb e5.json completed, all passed!
cb e6.json completed, all passed!
cb e7.json completed, all passed!
cb e8.json completed, all passed!
cb e9.json completed, all passed!
cb ea.json completed, all passed!
cb eb.json completed, all passed!
cb ec.json completed, all passed!
cb ed.json completed, all passed!
cb ee.json completed, all passed!
cb ef.json completed, all passed!
cb f0.json completed, all passed!
cb f1.json completed, all passed!
cb f2.json completed, all passed!
cb f3.json completed, all passed!
cb f4.json completed, all passed!
cb f5.json completed, all passed!
cb f6.json completed, all passed!
cb f7.json completed, all passed!
cb f8.json completed, all passed!
cb f9.json completed, all passed!
cb fa.json completed, all passed!
cb fb.json completed, all passed!
cb fc.json completed, all passed!
cb fd.json completed, all passed!
cb fe.json completed, all passed!
cb ff.json completed, all passed!
cc.json completed, all passed!
cd.json completed, all passed!
ce.json completed: 546 passed, 454 FAILED
cf.json completed, all passed!
d0.json completed, all passed!
d1.json completed, all passed!
d2.json completed, all passed!
d3.json completed, all passed!
d4.json completed, all passed!
d5.json completed, all passed!
d6.json completed: 493 passed, 507 FAILED
d7.json completed, all passed!
d8.json completed, all passed!
d9.json completed, all passed!
da.json completed, all passed!
db.json completed: 0 passed, 1000 FAILED
dc.json completed, all passed!
dd 09.json completed: 493 passed, 507 FAILED
dd 19.json completed: 513 passed, 487 FAILED
dd 29.json completed: 512 passed, 488 FAILED
dd 36.json completed, all passed!
dd 39.json completed: 485 passed, 515 FAILED
dd 46.json completed, all passed!
dd 4e.json completed, all passed!
dd 56.json completed, all passed!
dd 5e.json completed, all passed!
dd 66.json completed, all passed!
dd 6e.json completed, all passed!
dd 70.json completed, all passed!
dd 71.json completed, all passed!
dd 72.json completed, all passed!
dd 73.json completed, all passed!
dd 74.json completed, all passed!
dd 75.json completed, all passed!
dd 77.json completed, all passed!
dd 7e.json completed, all passed!
dd 8e.json completed: 516 passed, 484 FAILED
dd 9e.json completed: 477 passed, 523 FAILED
dd ae.json completed, all passed!
dd b6.json completed, all passed!
dd be.json completed: 500 passed, 500 FAILED
dd c6.json completed: 0 passed, 1000 FAILED
dd ce.json completed: 0 passed, 1000 FAILED
dd d6.json completed: 0 passed, 1000 FAILED
dd de.json completed: 0 passed, 1000 FAILED
dd e1.json completed, all passed!
dd e3.json completed, all passed!
dd e5.json completed, all passed!
dd e6.json completed: 0 passed, 1000 FAILED
dd e9.json completed, all passed!
dd ee.json completed: 0 passed, 1000 FAILED
dd f9.json completed, all passed!
dd fe.json completed: 0 passed, 1000 FAILED
de.json completed: 522 passed, 478 FAILED
df.json completed, all passed!
e0.json completed, all passed!
e1.json completed, all passed!
e2.json completed, all passed!
e3.json completed, all passed!
e4.json completed, all passed!
e5.json completed, all passed!
e6.json completed, all passed!
e7.json completed, all passed!
e8.json completed, all passed!
e9.json completed, all passed!
ea.json completed, all passed!
eb.json completed, all passed!
ec.json completed, all passed!
ed 40.json completed: 0 passed, 1000 FAILED
ed 41.json completed: 0 passed, 1000 FAILED
ed 42.json completed: 503 passed, 497 FAILED
ed 43.json completed, all passed!
ed 44.json completed: 538 passed, 462 FAILED
ed 45.json completed: 0 passed, 1000 FAILED
ed 46.json completed, all passed!
ed 47.json completed, all passed!
ed 48.json completed: 0 passed, 1000 FAILED
ed 49.json completed: 0 passed, 1000 FAILED
ed 4a.json completed: 515 passed, 485 FAILED
ed 4b.json completed, all passed!
ed 4c.json completed: 545 passed, 455 FAILED
ed 4d.json completed: 0 passed, 1000 FAILED
ed 4e.json completed, all passed!
ed 4f.json completed, all passed!
ed 50.json completed: 0 passed, 1000 FAILED
ed 51.json completed: 0 passed, 1000 FAILED
ed 52.json completed: 508 passed, 492 FAILED
ed 53.json completed, all passed!
ed 54.json completed: 513 passed, 487 FAILED
ed 55.json completed: 0 passed, 1000 FAILED
ed 56.json completed, all passed!
ed 57.json completed: 0 passed, 1000 FAILED
ed 58.json completed: 0 passed, 1000 FAILED
ed 59.json completed: 0 passed, 1000 FAILED
ed 5a.json completed: 500 passed, 500 FAILED
ed 5b.json completed, all passed!
ed 5c.json completed: 532 passed, 468 FAILED
ed 5d.json completed: 0 passed, 1000 FAILED
ed 5e.json completed, all passed!
ed 5f.json completed: 0 passed, 1000 FAILED
ed 60.json completed: 0 passed, 1000 FAILED
ed 61.json completed: 0 passed, 1000 FAILED
ed 62.json completed, all passed!
ed 63.json completed, all passed!
ed 64.json completed: 543 passed, 457 FAILED
ed 65.json completed: 0 passed, 1000 FAILED
ed 66.json completed, all passed!
ed 67.json completed: 0 passed, 1000 FAILED
ed 68.json completed: 0 passed, 1000 FAILED
ed 69.json completed: 0 passed, 1000 FAILED
ed 6a.json completed: 521 passed, 479 FAILED
ed 6b.json completed, all passed!
ed 6c.json completed: 496 passed, 504 FAILED
ed 6d.json completed: 0 passed, 1000 FAILED
ed 6e.json completed, all passed!
ed 6f.json completed: 0 passed, 1000 FAILED
ed 70.json completed: 0 passed, 1000 FAILED
ed 71.json completed: 0 passed, 1000 FAILED
ed 72.json completed: 517 passed, 483 FAILED
ed 73.json completed, all passed!
ed 74.json completed: 534 passed, 466 FAILED
ed 75.json completed: 0 passed, 1000 FAILED
ed 76.json completed, all passed!
ed 77.json completed, all passed!
ed 78.json completed: 0 passed, 1000 FAILED
ed 79.json completed: 0 passed, 1000 FAILED
ed 7a.json completed: 482 passed, 518 FAILED
ed 7b.json completed, all passed!
ed 7c.json completed: 517 passed, 483 FAILED
ed 7d.json completed: 0 passed, 1000 FAILED
ed 7e.json completed, all passed!
ed 7f.json completed, all passed!
ed a0.json completed, all passed!
ed a1.json completed: 0 passed, 1000 FAILED
ed a2.json completed: 0 passed, 1000 FAILED
ed a3.json completed: 0 passed, 1000 FAILED
ed a8.json completed, all passed!
ed a9.json completed: 0 passed, 1000 FAILED
ed aa.json completed: 0 passed, 1000 FAILED
ed ab.json completed: 0 passed, 1000 FAILED
ed b0.json completed, all passed!
ed b1.json completed: 0 passed, 1000 FAILED
ed b2.json completed: 0 passed, 1000 FAILED
ed b3.json completed: 0 passed, 1000 FAILED
ed b8.json completed, all passed!
ed b9.json completed: 0 passed, 1000 FAILED
ed ba.json completed: 0 passed, 1000 FAILED
ed bb.json completed: 0 passed, 1000 FAILED
ee.json completed, all passed!
ef.json completed, all passed!
f0.json completed, all passed!
f1.json completed, all passed!
f2.json completed, all passed!
f3.json completed, all passed!
f4.json completed, all passed!
f5.json completed, all passed!
f6.json completed, all passed!
f7.json completed, all passed!
f8.json completed, all passed!
f9.json completed, all passed!
fa.json completed, all passed!
fb.json completed, all passed!
fc.json completed, all passed!
fd 09.json completed: 0 passed, 1000 FAILED
fd 19.json completed: 0 passed, 1000 FAILED
fd 29.json completed: 0 passed, 1000 FAILED
fd 36.json completed, all passed!
fd 39.json completed: 0 passed, 1000 FAILED
fd 46.json completed, all passed!
fd 4e.json completed, all passed!
fd 56.json completed, all passed!
fd 5e.json completed, all passed!
fd 66.json completed, all passed!
fd 6e.json completed, all passed!
fd 70.json completed, all passed!
fd 71.json completed, all passed!
fd 72.json completed, all passed!
fd 73.json completed, all passed!
fd 74.json completed, all passed!
fd 75.json completed, all passed!
fd 77.json completed, all passed!
fd 7e.json completed, all passed!
fd 8e.json completed: 512 passed, 488 FAILED
fd 9e.json completed: 502 passed, 498 FAILED
fd ae.json completed, all passed!
fd b6.json completed, all passed!
fd be.json completed: 504 passed, 496 FAILED
fd c6.json completed: 0 passed, 1000 FAILED
fd ce.json completed: 0 passed, 1000 FAILED
fd d6.json completed: 0 passed, 1000 FAILED
fd de.json completed: 0 passed, 1000 FAILED
fd e1.json completed, all passed!
fd e3.json completed: 999 passed, 1 FAILED
fd e5.json completed, all passed!
fd e6.json completed: 0 passed, 1000 FAILED
fd e9.json completed, all passed!
fd ee.json completed: 0 passed, 1000 FAILED
fd f9.json completed, all passed!
fd fe.json completed: 0 passed, 1000 FAILED
fe.json completed: 493 passed, 507 FAILED
ff.json completed, all passed!
passed: 506814, failed: 147186, total 77%
completed in 9m 36s

View File

@ -0,0 +1,659 @@
Last run on 2023-05-13 at commit cf4e31454b417b361b70fcbf82edf6a1daf62eb8
00.json completed, all passed!
01.json completed, all passed!
02.json completed, all passed!
03.json completed, all passed!
04.json completed, all passed!
05.json completed, all passed!
06.json completed, all passed!
07.json completed, all passed!
08.json completed, all passed!
09.json completed, all passed!
0a.json completed, all passed!
0b.json completed, all passed!
0c.json completed, all passed!
0d.json completed, all passed!
0e.json completed, all passed!
0f.json completed, all passed!
10.json completed, all passed!
100.json completed, all passed!
101.json completed, all passed!
11.json completed, all passed!
12.json completed, all passed!
13.json completed, all passed!
14.json completed, all passed!
15.json completed, all passed!
16.json completed, all passed!
17.json completed, all passed!
18.json completed, all passed!
19.json completed, all passed!
1a.json completed, all passed!
1b.json completed, all passed!
1c.json completed, all passed!
1d.json completed, all passed!
1e.json completed, all passed!
1f.json completed, all passed!
20.json completed, all passed!
21.json completed, all passed!
22.json completed: 999 passed, 1 FAILED
23.json completed, all passed!
24.json completed, all passed!
25.json completed, all passed!
26.json completed, all passed!
27.json completed: 0 passed, 1000 FAILED
28.json completed, all passed!
29.json completed, all passed!
2a.json completed, all passed!
2b.json completed, all passed!
2c.json completed, all passed!
2d.json completed, all passed!
2e.json completed, all passed!
2f.json completed, all passed!
30.json completed, all passed!
31.json completed, all passed!
32.json completed, all passed!
33.json completed, all passed!
34.json completed, all passed!
35.json completed, all passed!
36.json completed, all passed!
37.json completed, all passed!
38.json completed, all passed!
39.json completed, all passed!
3a.json completed, all passed!
3b.json completed, all passed!
3c.json completed, all passed!
3d.json completed, all passed!
3e.json completed, all passed!
3f.json completed, all passed!
40.json completed, all passed!
41.json completed, all passed!
42.json completed, all passed!
43.json completed, all passed!
44.json completed, all passed!
45.json completed, all passed!
46.json completed, all passed!
47.json completed, all passed!
48.json completed, all passed!
49.json completed, all passed!
4a.json completed, all passed!
4b.json completed, all passed!
4c.json completed, all passed!
4d.json completed, all passed!
4e.json completed, all passed!
4f.json completed, all passed!
50.json completed, all passed!
51.json completed, all passed!
52.json completed, all passed!
53.json completed, all passed!
54.json completed, all passed!
55.json completed, all passed!
56.json completed, all passed!
57.json completed, all passed!
58.json completed, all passed!
59.json completed, all passed!
5a.json completed, all passed!
5b.json completed, all passed!
5c.json completed, all passed!
5d.json completed, all passed!
5e.json completed, all passed!
5f.json completed, all passed!
60.json completed, all passed!
61.json completed, all passed!
62.json completed, all passed!
63.json completed, all passed!
64.json completed, all passed!
65.json completed, all passed!
66.json completed, all passed!
67.json completed, all passed!
68.json completed, all passed!
69.json completed, all passed!
6a.json completed, all passed!
6b.json completed, all passed!
6c.json completed, all passed!
6d.json completed, all passed!
6e.json completed, all passed!
6f.json completed, all passed!
70.json completed, all passed!
71.json completed, all passed!
72.json completed, all passed!
73.json completed, all passed!
74.json completed, all passed!
75.json completed, all passed!
76.json completed, all passed!
77.json completed, all passed!
78.json completed, all passed!
79.json completed, all passed!
7a.json completed, all passed!
7b.json completed, all passed!
7c.json completed, all passed!
7d.json completed, all passed!
7e.json completed, all passed!
7f.json completed, all passed!
80.json completed, all passed!
81.json completed, all passed!
82.json completed, all passed!
83.json completed, all passed!
84.json completed, all passed!
85.json completed, all passed!
86.json completed, all passed!
87.json completed, all passed!
88.json completed, all passed!
89.json completed, all passed!
8a.json completed, all passed!
8b.json completed, all passed!
8c.json completed, all passed!
8d.json completed, all passed!
8e.json completed, all passed!
8f.json completed, all passed!
90.json completed, all passed!
91.json completed, all passed!
92.json completed, all passed!
93.json completed, all passed!
94.json completed, all passed!
95.json completed, all passed!
96.json completed, all passed!
97.json completed, all passed!
98.json completed, all passed!
99.json completed, all passed!
9a.json completed, all passed!
9b.json completed, all passed!
9c.json completed, all passed!
9d.json completed, all passed!
9e.json completed, all passed!
9f.json completed, all passed!
a0.json completed, all passed!
a1.json completed, all passed!
a2.json completed, all passed!
a3.json completed, all passed!
a4.json completed, all passed!
a5.json completed, all passed!
a6.json completed, all passed!
a7.json completed, all passed!
a8.json completed, all passed!
a9.json completed, all passed!
aa.json completed, all passed!
ab.json completed, all passed!
ac.json completed, all passed!
ad.json completed, all passed!
ae.json completed, all passed!
af.json completed, all passed!
b0.json completed, all passed!
b1.json completed, all passed!
b2.json completed, all passed!
b3.json completed, all passed!
b4.json completed, all passed!
b5.json completed, all passed!
b6.json completed, all passed!
b7.json completed, all passed!
b8.json completed, all passed!
b9.json completed, all passed!
ba.json completed, all passed!
bb.json completed, all passed!
bc.json completed, all passed!
bd.json completed, all passed!
be.json completed, all passed!
bf.json completed, all passed!
c0.json completed, all passed!
c1.json completed, all passed!
c2.json completed, all passed!
c3.json completed, all passed!
c4.json completed, all passed!
c5.json completed, all passed!
c6.json completed, all passed!
c7.json completed, all passed!
c8.json completed, all passed!
c9.json completed, all passed!
ca.json completed, all passed!
cb 00.json completed, all passed!
cb 01.json completed, all passed!
cb 02.json completed, all passed!
cb 03.json completed, all passed!
cb 04.json completed, all passed!
cb 05.json completed, all passed!
cb 06.json completed, all passed!
cb 07.json completed, all passed!
cb 08.json completed, all passed!
cb 09.json completed, all passed!
cb 0a.json completed, all passed!
cb 0b.json completed, all passed!
cb 0c.json completed, all passed!
cb 0d.json completed, all passed!
cb 0e.json completed, all passed!
cb 0f.json completed, all passed!
cb 10.json completed, all passed!
cb 11.json completed, all passed!
cb 12.json completed, all passed!
cb 13.json completed, all passed!
cb 14.json completed, all passed!
cb 15.json completed, all passed!
cb 16.json completed, all passed!
cb 17.json completed, all passed!
cb 18.json completed, all passed!
cb 19.json completed, all passed!
cb 1a.json completed, all passed!
cb 1b.json completed, all passed!
cb 1c.json completed, all passed!
cb 1d.json completed, all passed!
cb 1e.json completed, all passed!
cb 1f.json completed, all passed!
cb 20.json completed, all passed!
cb 21.json completed, all passed!
cb 22.json completed, all passed!
cb 23.json completed, all passed!
cb 24.json completed, all passed!
cb 25.json completed, all passed!
cb 26.json completed, all passed!
cb 27.json completed, all passed!
cb 28.json completed, all passed!
cb 29.json completed, all passed!
cb 2a.json completed, all passed!
cb 2b.json completed, all passed!
cb 2c.json completed, all passed!
cb 2d.json completed, all passed!
cb 2e.json completed, all passed!
cb 2f.json completed, all passed!
cb 38.json completed, all passed!
cb 39.json completed, all passed!
cb 3a.json completed, all passed!
cb 3b.json completed, all passed!
cb 3c.json completed, all passed!
cb 3d.json completed, all passed!
cb 3e.json completed, all passed!
cb 3f.json completed, all passed!
cb 40.json completed: 244 passed, 756 FAILED
cb 41.json completed: 238 passed, 762 FAILED
cb 42.json completed: 262 passed, 738 FAILED
cb 43.json completed: 223 passed, 777 FAILED
cb 44.json completed: 244 passed, 756 FAILED
cb 45.json completed: 253 passed, 747 FAILED
cb 46.json completed: 239 passed, 761 FAILED
cb 47.json completed: 249 passed, 751 FAILED
cb 48.json completed: 256 passed, 744 FAILED
cb 49.json completed: 244 passed, 756 FAILED
cb 4a.json completed: 234 passed, 766 FAILED
cb 4b.json completed: 250 passed, 750 FAILED
cb 4c.json completed: 252 passed, 748 FAILED
cb 4d.json completed: 248 passed, 752 FAILED
cb 4e.json completed: 254 passed, 746 FAILED
cb 4f.json completed: 253 passed, 747 FAILED
cb 50.json completed: 256 passed, 744 FAILED
cb 51.json completed: 268 passed, 732 FAILED
cb 52.json completed: 261 passed, 739 FAILED
cb 53.json completed: 281 passed, 719 FAILED
cb 54.json completed: 238 passed, 762 FAILED
cb 55.json completed: 243 passed, 757 FAILED
cb 56.json completed: 254 passed, 746 FAILED
cb 57.json completed: 263 passed, 737 FAILED
cb 58.json completed: 252 passed, 748 FAILED
cb 59.json completed: 244 passed, 756 FAILED
cb 5a.json completed: 254 passed, 746 FAILED
cb 5b.json completed: 242 passed, 758 FAILED
cb 5c.json completed: 233 passed, 767 FAILED
cb 5d.json completed: 256 passed, 744 FAILED
cb 5e.json completed: 256 passed, 744 FAILED
cb 5f.json completed: 258 passed, 742 FAILED
cb 60.json completed: 265 passed, 735 FAILED
cb 61.json completed: 236 passed, 764 FAILED
cb 62.json completed: 258 passed, 742 FAILED
cb 63.json completed: 256 passed, 744 FAILED
cb 64.json completed: 231 passed, 769 FAILED
cb 65.json completed: 234 passed, 766 FAILED
cb 66.json completed: 252 passed, 748 FAILED
cb 67.json completed: 251 passed, 749 FAILED
cb 68.json completed: 237 passed, 763 FAILED
cb 69.json completed: 251 passed, 749 FAILED
cb 6a.json completed: 253 passed, 747 FAILED
cb 6b.json completed: 265 passed, 735 FAILED
cb 6c.json completed: 236 passed, 764 FAILED
cb 6d.json completed: 230 passed, 770 FAILED
cb 6e.json completed: 237 passed, 763 FAILED
cb 6f.json completed: 264 passed, 736 FAILED
cb 70.json completed: 245 passed, 755 FAILED
cb 71.json completed: 238 passed, 762 FAILED
cb 72.json completed: 248 passed, 752 FAILED
cb 73.json completed: 261 passed, 739 FAILED
cb 74.json completed: 260 passed, 740 FAILED
cb 75.json completed: 247 passed, 753 FAILED
cb 76.json completed: 252 passed, 748 FAILED
cb 77.json completed: 238 passed, 762 FAILED
cb 78.json completed: 243 passed, 757 FAILED
cb 79.json completed: 242 passed, 758 FAILED
cb 7a.json completed: 262 passed, 738 FAILED
cb 7b.json completed: 246 passed, 754 FAILED
cb 7c.json completed: 256 passed, 744 FAILED
cb 7d.json completed: 251 passed, 749 FAILED
cb 7e.json completed: 258 passed, 742 FAILED
cb 7f.json completed: 260 passed, 740 FAILED
cb 80.json completed, all passed!
cb 81.json completed, all passed!
cb 82.json completed, all passed!
cb 83.json completed, all passed!
cb 84.json completed, all passed!
cb 85.json completed, all passed!
cb 86.json completed, all passed!
cb 87.json completed, all passed!
cb 88.json completed, all passed!
cb 89.json completed, all passed!
cb 8a.json completed, all passed!
cb 8b.json completed, all passed!
cb 8c.json completed, all passed!
cb 8d.json completed, all passed!
cb 8e.json completed, all passed!
cb 8f.json completed, all passed!
cb 90.json completed, all passed!
cb 91.json completed, all passed!
cb 92.json completed, all passed!
cb 93.json completed, all passed!
cb 94.json completed, all passed!
cb 95.json completed, all passed!
cb 96.json completed, all passed!
cb 97.json completed, all passed!
cb 98.json completed, all passed!
cb 99.json completed, all passed!
cb 9a.json completed, all passed!
cb 9b.json completed, all passed!
cb 9c.json completed, all passed!
cb 9d.json completed, all passed!
cb 9e.json completed, all passed!
cb 9f.json completed, all passed!
cb a0.json completed, all passed!
cb a1.json completed, all passed!
cb a2.json completed, all passed!
cb a3.json completed, all passed!
cb a4.json completed, all passed!
cb a5.json completed, all passed!
cb a6.json completed, all passed!
cb a7.json completed, all passed!
cb a8.json completed, all passed!
cb a9.json completed, all passed!
cb aa.json completed, all passed!
cb ab.json completed, all passed!
cb ac.json completed, all passed!
cb ad.json completed, all passed!
cb ae.json completed, all passed!
cb af.json completed, all passed!
cb b0.json completed, all passed!
cb b1.json completed, all passed!
cb b2.json completed, all passed!
cb b3.json completed, all passed!
cb b4.json completed, all passed!
cb b5.json completed, all passed!
cb b6.json completed, all passed!
cb b7.json completed, all passed!
cb b8.json completed, all passed!
cb b9.json completed, all passed!
cb ba.json completed, all passed!
cb bb.json completed, all passed!
cb bc.json completed, all passed!
cb bd.json completed, all passed!
cb be.json completed, all passed!
cb bf.json completed, all passed!
cb c0.json completed, all passed!
cb c1.json completed, all passed!
cb c2.json completed, all passed!
cb c3.json completed, all passed!
cb c4.json completed, all passed!
cb c5.json completed, all passed!
cb c6.json completed, all passed!
cb c7.json completed, all passed!
cb c8.json completed, all passed!
cb c9.json completed, all passed!
cb ca.json completed, all passed!
cb cb.json completed, all passed!
cb cc.json completed, all passed!
cb cd.json completed, all passed!
cb ce.json completed, all passed!
cb cf.json completed, all passed!
cb d0.json completed, all passed!
cb d1.json completed, all passed!
cb d2.json completed, all passed!
cb d3.json completed, all passed!
cb d4.json completed, all passed!
cb d5.json completed, all passed!
cb d6.json completed, all passed!
cb d7.json completed, all passed!
cb d8.json completed, all passed!
cb d9.json completed, all passed!
cb da.json completed, all passed!
cb db.json completed, all passed!
cb dc.json completed, all passed!
cb dd.json completed, all passed!
cb de.json completed, all passed!
cb df.json completed, all passed!
cb e0.json completed, all passed!
cb e1.json completed, all passed!
cb e2.json completed, all passed!
cb e3.json completed, all passed!
cb e4.json completed, all passed!
cb e5.json completed, all passed!
cb e6.json completed, all passed!
cb e7.json completed, all passed!
cb e8.json completed, all passed!
cb e9.json completed, all passed!
cb ea.json completed, all passed!
cb eb.json completed, all passed!
cb ec.json completed, all passed!
cb ed.json completed, all passed!
cb ee.json completed, all passed!
cb ef.json completed, all passed!
cb f0.json completed, all passed!
cb f1.json completed, all passed!
cb f2.json completed, all passed!
cb f3.json completed, all passed!
cb f4.json completed, all passed!
cb f5.json completed, all passed!
cb f6.json completed, all passed!
cb f7.json completed, all passed!
cb f8.json completed, all passed!
cb f9.json completed, all passed!
cb fa.json completed, all passed!
cb fb.json completed, all passed!
cb fc.json completed, all passed!
cb fd.json completed, all passed!
cb fe.json completed, all passed!
cb ff.json completed, all passed!
cc.json completed, all passed!
cd.json completed, all passed!
ce.json completed, all passed!
cf.json completed, all passed!
d0.json completed, all passed!
d1.json completed, all passed!
d2.json completed, all passed!
d3.json completed, all passed!
d4.json completed, all passed!
d5.json completed, all passed!
d6.json completed, all passed!
d7.json completed, all passed!
d8.json completed, all passed!
d9.json completed, all passed!
da.json completed, all passed!
db.json completed: 0 passed, 1000 FAILED
dc.json completed, all passed!
dd 09.json completed, all passed!
dd 19.json completed, all passed!
dd 29.json completed, all passed!
dd 36.json completed, all passed!
dd 39.json completed, all passed!
dd 46.json completed, all passed!
dd 4e.json completed, all passed!
dd 56.json completed, all passed!
dd 5e.json completed, all passed!
dd 66.json completed, all passed!
dd 6e.json completed, all passed!
dd 70.json completed, all passed!
dd 71.json completed, all passed!
dd 72.json completed, all passed!
dd 73.json completed, all passed!
dd 74.json completed, all passed!
dd 75.json completed, all passed!
dd 77.json completed, all passed!
dd 7e.json completed, all passed!
dd 8e.json completed, all passed!
dd 9e.json completed, all passed!
dd ae.json completed, all passed!
dd b6.json completed, all passed!
dd be.json completed, all passed!
dd c6.json completed: 0 passed, 1000 FAILED
dd ce.json completed: 0 passed, 1000 FAILED
dd d6.json completed: 0 passed, 1000 FAILED
dd de.json completed: 0 passed, 1000 FAILED
dd e1.json completed, all passed!
dd e3.json completed, all passed!
dd e5.json completed, all passed!
dd e6.json completed: 0 passed, 1000 FAILED
dd e9.json completed, all passed!
dd ee.json completed: 0 passed, 1000 FAILED
dd f9.json completed, all passed!
dd fe.json completed: 0 passed, 1000 FAILED
de.json completed, all passed!
df.json completed, all passed!
e0.json completed, all passed!
e1.json completed, all passed!
e2.json completed, all passed!
e3.json completed, all passed!
e4.json completed, all passed!
e5.json completed, all passed!
e6.json completed, all passed!
e7.json completed, all passed!
e8.json completed, all passed!
e9.json completed, all passed!
ea.json completed, all passed!
eb.json completed, all passed!
ec.json completed, all passed!
ed 40.json completed: 0 passed, 1000 FAILED
ed 41.json completed: 0 passed, 1000 FAILED
ed 42.json completed, all passed!
ed 43.json completed, all passed!
ed 44.json completed, all passed!
ed 45.json completed: 0 passed, 1000 FAILED
ed 46.json completed, all passed!
ed 47.json completed, all passed!
ed 48.json completed: 0 passed, 1000 FAILED
ed 49.json completed: 0 passed, 1000 FAILED
ed 4a.json completed, all passed!
ed 4b.json completed, all passed!
ed 4c.json completed, all passed!
ed 4d.json completed: 0 passed, 1000 FAILED
ed 4e.json completed, all passed!
ed 4f.json completed, all passed!
ed 50.json completed: 0 passed, 1000 FAILED
ed 51.json completed: 0 passed, 1000 FAILED
ed 52.json completed, all passed!
ed 53.json completed, all passed!
ed 54.json completed, all passed!
ed 55.json completed: 0 passed, 1000 FAILED
ed 56.json completed, all passed!
ed 57.json completed: 0 passed, 1000 FAILED
ed 58.json completed: 0 passed, 1000 FAILED
ed 59.json completed: 0 passed, 1000 FAILED
ed 5a.json completed, all passed!
ed 5b.json completed, all passed!
ed 5c.json completed, all passed!
ed 5d.json completed: 0 passed, 1000 FAILED
ed 5e.json completed, all passed!
ed 5f.json completed: 0 passed, 1000 FAILED
ed 60.json completed: 0 passed, 1000 FAILED
ed 61.json completed: 0 passed, 1000 FAILED
ed 62.json completed, all passed!
ed 63.json completed, all passed!
ed 64.json completed, all passed!
ed 65.json completed: 0 passed, 1000 FAILED
ed 66.json completed, all passed!
ed 67.json completed: 0 passed, 1000 FAILED
ed 68.json completed: 0 passed, 1000 FAILED
ed 69.json completed: 0 passed, 1000 FAILED
ed 6a.json completed, all passed!
ed 6b.json completed, all passed!
ed 6c.json completed, all passed!
ed 6d.json completed: 0 passed, 1000 FAILED
ed 6e.json completed, all passed!
ed 6f.json completed: 0 passed, 1000 FAILED
ed 70.json completed: 0 passed, 1000 FAILED
ed 71.json completed: 0 passed, 1000 FAILED
ed 72.json completed, all passed!
ed 73.json completed, all passed!
ed 74.json completed, all passed!
ed 75.json completed: 0 passed, 1000 FAILED
ed 76.json completed, all passed!
ed 77.json completed, all passed!
ed 78.json completed: 0 passed, 1000 FAILED
ed 79.json completed: 0 passed, 1000 FAILED
ed 7a.json completed, all passed!
ed 7b.json completed, all passed!
ed 7c.json completed, all passed!
ed 7d.json completed: 0 passed, 1000 FAILED
ed 7e.json completed, all passed!
ed 7f.json completed, all passed!
ed a0.json completed, all passed!
ed a1.json completed: 0 passed, 1000 FAILED
ed a2.json completed: 0 passed, 1000 FAILED
ed a3.json completed: 0 passed, 1000 FAILED
ed a8.json completed, all passed!
ed a9.json completed: 0 passed, 1000 FAILED
ed aa.json completed: 0 passed, 1000 FAILED
ed ab.json completed: 0 passed, 1000 FAILED
ed b0.json completed, all passed!
ed b1.json completed: 0 passed, 1000 FAILED
ed b2.json completed: 0 passed, 1000 FAILED
ed b3.json completed: 0 passed, 1000 FAILED
ed b8.json completed, all passed!
ed b9.json completed: 0 passed, 1000 FAILED
ed ba.json completed: 0 passed, 1000 FAILED
ed bb.json completed: 0 passed, 1000 FAILED
ee.json completed, all passed!
ef.json completed, all passed!
f0.json completed, all passed!
f1.json completed, all passed!
f2.json completed, all passed!
f3.json completed, all passed!
f4.json completed, all passed!
f5.json completed, all passed!
f6.json completed, all passed!
f7.json completed, all passed!
f8.json completed, all passed!
f9.json completed, all passed!
fa.json completed, all passed!
fb.json completed, all passed!
fc.json completed, all passed!
fd 09.json completed: 0 passed, 1000 FAILED
fd 19.json completed: 0 passed, 1000 FAILED
fd 29.json completed: 0 passed, 1000 FAILED
fd 36.json completed, all passed!
fd 39.json completed: 0 passed, 1000 FAILED
fd 46.json completed, all passed!
fd 4e.json completed, all passed!
fd 56.json completed, all passed!
fd 5e.json completed, all passed!
fd 66.json completed, all passed!
fd 6e.json completed, all passed!
fd 70.json completed, all passed!
fd 71.json completed, all passed!
fd 72.json completed, all passed!
fd 73.json completed, all passed!
fd 74.json completed, all passed!
fd 75.json completed, all passed!
fd 77.json completed, all passed!
fd 7e.json completed, all passed!
fd 8e.json completed, all passed!
fd 9e.json completed, all passed!
fd ae.json completed, all passed!
fd b6.json completed, all passed!
fd be.json completed, all passed!
fd c6.json completed: 0 passed, 1000 FAILED
fd ce.json completed: 0 passed, 1000 FAILED
fd d6.json completed: 0 passed, 1000 FAILED
fd de.json completed: 0 passed, 1000 FAILED
fd e1.json completed, all passed!
fd e3.json completed: 999 passed, 1 FAILED
fd e5.json completed, all passed!
fd e6.json completed: 0 passed, 1000 FAILED
fd e9.json completed, all passed!
fd ee.json completed: 0 passed, 1000 FAILED
fd f9.json completed, all passed!
fd fe.json completed: 0 passed, 1000 FAILED
fe.json completed, all passed!
ff.json completed, all passed!
passed: 545963, failed: 108037, total 83%
completed in 10m 48s

View File

@ -186,7 +186,7 @@ fn load_state(cpu: &mut Z80, system: &mut System, initial: &TestState) -> Result
Ok(()) Ok(())
} }
const IGNORE_FLAG_MASK: u8 = Flags::HalfCarry as u8 | Flags::F3 as u8 | Flags::F5 as u8; const IGNORE_FLAG_MASK: u8 = Flags::F3 as u8 | Flags::F5 as u8;
fn assert_state(cpu: &Z80, system: &System, expected: &TestState, check_extra_flags: bool) -> Result<(), Error> { fn assert_state(cpu: &Z80, system: &System, expected: &TestState, check_extra_flags: bool) -> Result<(), Error> {
assert_value(cpu.state.reg[0], expected.b, "b")?; assert_value(cpu.state.reg[0], expected.b, "b")?;
@ -379,16 +379,15 @@ fn is_undocumented_instruction(name: &str) -> bool {
opcodes.extend(vec![0; 3 - opcodes.len()]); opcodes.extend(vec![0; 3 - opcodes.len()]);
match (opcodes[0], opcodes[1]) { match (opcodes[0], opcodes[1]) {
(0xCB, _) => { (0xCB, op) => {
opcodes[1] >= 0x30 && opcodes[1] <= 0x37 op >= 0x30 && op <= 0x37
}, },
(0xDD, 0xCB) | (0xDD, 0xCB) |
(0xFD, 0xCB) => { (0xFD, 0xCB) => {
!(opcodes[2] & 0x07 == 0x06 && opcodes[2] != 0x36) !(opcodes[2] & 0x07 == 0x06 && opcodes[2] != 0x36)
}, },
(0xDD, _) | (0xDD, op) |
(0xFD, _) => { (0xFD, op) => {
let op = opcodes[1];
let upper3 = op & 0x70; let upper3 = op & 0x70;
let upper4 = op & 0xF0; let upper4 = op & 0xF0;
let lower = op & 0x0F; let lower = op & 0x0F;
@ -399,9 +398,11 @@ fn is_undocumented_instruction(name: &str) -> bool {
!(lower == 0x09 && upper4 <= 0x30) && !(lower == 0x09 && upper4 <= 0x30) &&
!(op == 0xE1 || op == 0xE3 || op == 0xE5 || op == 0xE9 || op == 0xF9) !(op == 0xE1 || op == 0xE3 || op == 0xE5 || op == 0xE9 || op == 0xF9)
}, },
//0xED => { (0xED, op) => {
// NOTE this assumes the tests don't have the missing instructions, or the Z180 instructions
//}, // so it only checks for the undocumented ones
op == 0x63 || op == 0x6B || op == 0x70 || op == 0x71
},
_ => false _ => false
} }
} }