From 9694036e3352d24564e270315345628d5b004b09 Mon Sep 17 00:00:00 2001 From: transistor Date: Tue, 9 May 2023 22:58:56 -0700 Subject: [PATCH] Fixed Z80 to pass the rad tests --- emulator/cpus/z80/src/decode.rs | 12 +- emulator/cpus/z80/src/execute.rs | 4 + tests/rad_tests/latest.txt | 564 ++++++++++++++++++++++++++++++- 3 files changed, 573 insertions(+), 7 deletions(-) diff --git a/emulator/cpus/z80/src/decode.rs b/emulator/cpus/z80/src/decode.rs index a3e5ff9..20f0f43 100644 --- a/emulator/cpus/z80/src/decode.rs +++ b/emulator/cpus/z80/src/decode.rs @@ -121,6 +121,7 @@ pub enum Instruction { INI, INIR, INic(Register), + INicz, INx(u8), JP(u16), JPIndirect(RegisterPair), @@ -141,6 +142,7 @@ pub enum Instruction { OUTD, OUTI, OUTic(Register), + OUTicz, OUTx(u8), POP(RegisterPair), PUSH(RegisterPair), @@ -362,7 +364,7 @@ impl Z80Decoder { 1 => self.decode_prefix_dd_fd(memory, IndexRegister::IX), 2 => self.decode_prefix_ed(memory), 3 => self.decode_prefix_dd_fd(memory, IndexRegister::IY), - _ => panic!("Undecoded Instruction"), + _ => panic!("InternalError: impossible value"), } } } @@ -376,7 +378,7 @@ impl Z80Decoder { _ => panic!("InternalError: impossible value"), } }, - _ => panic!("Undecoded Instruction"), + _ => panic!("InternalError: impossible value"), } } @@ -420,8 +422,7 @@ impl Z80Decoder { if let Target::DirectReg(reg) = target { Ok(Instruction::INic(reg)) } else { - //Ok(Instruction::INic()) - panic!("Unimplemented"); + Ok(Instruction::INicz) } }, 1 => { @@ -429,8 +430,7 @@ impl Z80Decoder { if let Target::DirectReg(reg) = target { Ok(Instruction::OUTic(reg)) } else { - //Ok(Instruction::OUTic()) - panic!("Unimplemented"); + Ok(Instruction::OUTicz) } }, 2 => { diff --git a/emulator/cpus/z80/src/execute.rs b/emulator/cpus/z80/src/execute.rs index 710c115..3c93f80 100644 --- a/emulator/cpus/z80/src/execute.rs +++ b/emulator/cpus/z80/src/execute.rs @@ -282,6 +282,8 @@ impl Z80 { //}, //Instruction::INic(reg) => { //}, + //Instruction::INicz => { + //}, //Instruction::INx(u8) => { //}, Instruction::JP(addr) => { @@ -368,6 +370,8 @@ impl Z80 { //}, //Instruction::OUTic(reg) => { //}, + //Instruction::OUTicz => { + //}, Instruction::OUTx(_port) => { // TODO this needs to be fixed //println!("OUT ({:x}), {:x} {}", port, self.state.reg[Register::A as usize], self.state.reg[Register::A as usize] as char); diff --git a/tests/rad_tests/latest.txt b/tests/rad_tests/latest.txt index fd8be2c..862e6c1 100644 --- a/tests/rad_tests/latest.txt +++ b/tests/rad_tests/latest.txt @@ -1,4 +1,4 @@ -Last run on 2023-05-09 at commit 5e228c377ea6101249c69af7945ee00263f3f87c +Last run on 2023-05-09 at commit f8083db181c584eaec605eee1bbae3dede032477 00.json completed, all passed! 01.json completed, all passed! @@ -1051,3 +1051,565 @@ ed 6c.json completed: 122 passed, 878 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: 79 passed, 921 FAILED +ed 73.json completed, all passed! +ed 74.json completed: 148 passed, 852 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: 69 passed, 931 FAILED +ed 7b.json completed, all passed! +ed 7c.json completed: 147 passed, 853 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: 225 passed, 775 FAILED +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: 247 passed, 753 FAILED +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: 268 passed, 732 FAILED +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: 247 passed, 753 FAILED +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: 252 passed, 748 FAILED +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: 62 passed, 938 FAILED +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 00.json completed, all passed! +fd 01.json completed: 0 passed, 1000 FAILED +fd 02.json completed: 2 passed, 998 FAILED +fd 03.json completed: 0 passed, 1000 FAILED +fd 04.json completed: 0 passed, 1000 FAILED +fd 05.json completed: 0 passed, 1000 FAILED +fd 06.json completed: 0 passed, 1000 FAILED +fd 07.json completed: 0 passed, 1000 FAILED +fd 08.json completed: 0 passed, 1000 FAILED +fd 09.json completed: 0 passed, 1000 FAILED +fd 0a.json completed: 5 passed, 995 FAILED +fd 0b.json completed: 0 passed, 1000 FAILED +fd 0c.json completed: 0 passed, 1000 FAILED +fd 0d.json completed: 0 passed, 1000 FAILED +fd 0e.json completed: 0 passed, 1000 FAILED +fd 0f.json completed: 0 passed, 1000 FAILED +fd 10.json completed: 0 passed, 1000 FAILED +fd 100.json completed, all passed! +fd 101.json completed: 0 passed, 1000 FAILED +fd 11.json completed: 0 passed, 1000 FAILED +fd 12.json completed: 7 passed, 993 FAILED +fd 13.json completed: 0 passed, 1000 FAILED +fd 14.json completed: 0 passed, 1000 FAILED +fd 15.json completed: 0 passed, 1000 FAILED +fd 16.json completed: 0 passed, 1000 FAILED +fd 17.json completed: 0 passed, 1000 FAILED +fd 18.json completed: 5 passed, 995 FAILED +fd 19.json completed: 0 passed, 1000 FAILED +fd 1a.json completed: 0 passed, 1000 FAILED +fd 1b.json completed: 0 passed, 1000 FAILED +fd 1c.json completed: 0 passed, 1000 FAILED +fd 1d.json completed: 0 passed, 1000 FAILED +fd 1e.json completed: 0 passed, 1000 FAILED +fd 1f.json completed: 0 passed, 1000 FAILED +fd 20.json completed: 0 passed, 1000 FAILED +fd 21.json completed, all passed! +fd 22.json completed, all passed! +fd 23.json completed, all passed! +fd 24.json completed: 61 passed, 939 FAILED +fd 25.json completed: 0 passed, 1000 FAILED +fd 26.json completed: 103 passed, 897 FAILED +fd 27.json completed: 5 passed, 995 FAILED +fd 28.json completed: 2 passed, 998 FAILED +fd 29.json completed: 0 passed, 1000 FAILED +fd 2a.json completed, all passed! +fd 2b.json completed, all passed! +fd 2c.json completed: 70 passed, 930 FAILED +fd 2d.json completed: 0 passed, 1000 FAILED +fd 2e.json completed: 112 passed, 888 FAILED +fd 2f.json completed: 0 passed, 1000 FAILED +fd 30.json completed: 489 passed, 511 FAILED +fd 31.json completed: 0 passed, 1000 FAILED +fd 32.json completed: 0 passed, 1000 FAILED +fd 33.json completed: 0 passed, 1000 FAILED +fd 34.json completed: 113 passed, 887 FAILED +fd 35.json completed: 132 passed, 868 FAILED +fd 36.json completed, all passed! +fd 37.json completed: 0 passed, 1000 FAILED +fd 38.json completed: 511 passed, 489 FAILED +fd 39.json completed: 0 passed, 1000 FAILED +fd 3a.json completed: 0 passed, 1000 FAILED +fd 3b.json completed: 0 passed, 1000 FAILED +fd 3c.json completed: 0 passed, 1000 FAILED +fd 3d.json completed: 0 passed, 1000 FAILED +fd 3e.json completed: 7 passed, 993 FAILED +fd 3f.json completed: 0 passed, 1000 FAILED +fd 40.json completed, all passed! +fd 41.json completed: 1 passed, 999 FAILED +fd 42.json completed: 15 passed, 985 FAILED +fd 43.json completed: 6 passed, 994 FAILED +fd 44.json completed, all passed! +fd 45.json completed, all passed! +fd 46.json completed, all passed! +fd 47.json completed: 4 passed, 996 FAILED +fd 48.json completed: 2 passed, 998 FAILED +fd 49.json completed, all passed! +fd 4a.json completed: 4 passed, 996 FAILED +fd 4b.json completed: 3 passed, 997 FAILED +fd 4c.json completed, all passed! +fd 4d.json completed, all passed! +fd 4e.json completed, all passed! +fd 4f.json completed: 2 passed, 998 FAILED +fd 50.json completed: 6 passed, 994 FAILED +fd 51.json completed: 4 passed, 996 FAILED +fd 52.json completed, all passed! +fd 53.json completed: 2 passed, 998 FAILED +fd 54.json completed, all passed! +fd 55.json completed, all passed! +fd 56.json completed, all passed! +fd 57.json completed: 6 passed, 994 FAILED +fd 58.json completed: 2 passed, 998 FAILED +fd 59.json completed: 2 passed, 998 FAILED +fd 5a.json completed: 2 passed, 998 FAILED +fd 5b.json completed, all passed! +fd 5c.json completed, all passed! +fd 5d.json completed, all passed! +fd 5e.json completed, all passed! +fd 5f.json completed: 1 passed, 999 FAILED +fd 60.json completed: 88 passed, 912 FAILED +fd 61.json completed: 107 passed, 893 FAILED +fd 62.json completed: 102 passed, 898 FAILED +fd 63.json completed: 111 passed, 889 FAILED +fd 64.json completed, all passed! +fd 65.json completed: 81 passed, 919 FAILED +fd 66.json completed, all passed! +fd 67.json completed: 116 passed, 884 FAILED +fd 68.json completed: 104 passed, 896 FAILED +fd 69.json completed: 88 passed, 912 FAILED +fd 6a.json completed: 92 passed, 908 FAILED +fd 6b.json completed: 86 passed, 914 FAILED +fd 6c.json completed: 89 passed, 911 FAILED +fd 6d.json completed, all passed! +fd 6e.json completed, all passed! +fd 6f.json completed: 104 passed, 896 FAILED +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 76.json completed: 0 passed, 1000 FAILED +fd 77.json completed, all passed! +fd 78.json completed: 4 passed, 996 FAILED +fd 79.json completed: 4 passed, 996 FAILED +fd 7a.json completed: 7 passed, 993 FAILED +fd 7b.json completed: 5 passed, 995 FAILED +fd 7c.json completed, all passed! +fd 7d.json completed, all passed! +fd 7e.json completed, all passed! +fd 7f.json completed, all passed! +fd 80.json completed: 0 passed, 1000 FAILED +fd 81.json completed: 0 passed, 1000 FAILED +fd 82.json completed: 0 passed, 1000 FAILED +fd 83.json completed: 0 passed, 1000 FAILED +fd 84.json completed: 86 passed, 914 FAILED +fd 85.json completed: 107 passed, 893 FAILED +fd 86.json completed: 82 passed, 918 FAILED +fd 87.json completed: 0 passed, 1000 FAILED +fd 88.json completed: 0 passed, 1000 FAILED +fd 89.json completed: 0 passed, 1000 FAILED +fd 8a.json completed: 0 passed, 1000 FAILED +fd 8b.json completed: 0 passed, 1000 FAILED +fd 8c.json completed: 99 passed, 901 FAILED +fd 8d.json completed: 103 passed, 897 FAILED +fd 8e.json completed: 89 passed, 911 FAILED +fd 8f.json completed: 0 passed, 1000 FAILED +fd 90.json completed: 0 passed, 1000 FAILED +fd 91.json completed: 0 passed, 1000 FAILED +fd 92.json completed: 0 passed, 1000 FAILED +fd 93.json completed: 0 passed, 1000 FAILED +fd 94.json completed: 134 passed, 866 FAILED +fd 95.json completed: 123 passed, 877 FAILED +fd 96.json completed: 120 passed, 880 FAILED +fd 97.json completed: 0 passed, 1000 FAILED +fd 98.json completed: 0 passed, 1000 FAILED +fd 99.json completed: 0 passed, 1000 FAILED +fd 9a.json completed: 0 passed, 1000 FAILED +fd 9b.json completed: 0 passed, 1000 FAILED +fd 9c.json completed: 130 passed, 870 FAILED +fd 9d.json completed: 127 passed, 873 FAILED +fd 9e.json completed: 102 passed, 898 FAILED +fd 9f.json completed: 0 passed, 1000 FAILED +fd a0.json completed: 0 passed, 1000 FAILED +fd a1.json completed: 0 passed, 1000 FAILED +fd a2.json completed: 0 passed, 1000 FAILED +fd a3.json completed: 2 passed, 998 FAILED +fd a4.json completed: 543 passed, 457 FAILED +fd a5.json completed: 561 passed, 439 FAILED +fd a6.json completed: 563 passed, 437 FAILED +fd a7.json completed: 4 passed, 996 FAILED +fd a8.json completed: 0 passed, 1000 FAILED +fd a9.json completed: 0 passed, 1000 FAILED +fd aa.json completed: 0 passed, 1000 FAILED +fd ab.json completed: 0 passed, 1000 FAILED +fd ac.json completed: 248 passed, 752 FAILED +fd ad.json completed: 253 passed, 747 FAILED +fd ae.json completed: 264 passed, 736 FAILED +fd af.json completed: 0 passed, 1000 FAILED +fd b0.json completed: 0 passed, 1000 FAILED +fd b1.json completed: 0 passed, 1000 FAILED +fd b2.json completed: 1 passed, 999 FAILED +fd b3.json completed: 0 passed, 1000 FAILED +fd b4.json completed: 55 passed, 945 FAILED +fd b5.json completed: 55 passed, 945 FAILED +fd b6.json completed: 40 passed, 960 FAILED +fd b7.json completed: 3 passed, 997 FAILED +fd b8.json completed: 2 passed, 998 FAILED +fd b9.json completed: 0 passed, 1000 FAILED +fd ba.json completed: 2 passed, 998 FAILED +fd bb.json completed: 6 passed, 994 FAILED +fd bc.json completed: 137 passed, 863 FAILED +fd bd.json completed: 103 passed, 897 FAILED +fd be.json completed: 126 passed, 874 FAILED +fd bf.json completed: 4 passed, 996 FAILED +fd c0.json completed: 476 passed, 524 FAILED +fd c1.json completed: 0 passed, 1000 FAILED +fd c2.json completed: 0 passed, 1000 FAILED +fd c3.json completed: 0 passed, 1000 FAILED +fd c4.json completed: 0 passed, 1000 FAILED +fd c5.json completed: 0 passed, 1000 FAILED +fd c6.json completed: 0 passed, 1000 FAILED +fd c7.json completed: 0 passed, 1000 FAILED +fd c8.json completed: 498 passed, 502 FAILED +fd c9.json completed: 0 passed, 1000 FAILED +fd ca.json completed: 0 passed, 1000 FAILED +fd cb __ 00.json completed: 3 passed, 997 FAILED +fd cb __ 01.json completed: 7 passed, 993 FAILED +fd cb __ 02.json completed: 6 passed, 994 FAILED +fd cb __ 03.json completed: 1 passed, 999 FAILED +fd cb __ 04.json completed: 0 passed, 1000 FAILED +fd cb __ 05.json completed: 7 passed, 993 FAILED +fd cb __ 06.json completed: 237 passed, 763 FAILED +fd cb __ 07.json completed: 3 passed, 997 FAILED +fd cb __ 08.json completed: 1 passed, 999 FAILED +fd cb __ 09.json completed: 3 passed, 997 FAILED +fd cb __ 0a.json completed: 3 passed, 997 FAILED +fd cb __ 0b.json completed: 4 passed, 996 FAILED +fd cb __ 0c.json completed: 3 passed, 997 FAILED +fd cb __ 0d.json completed: 1 passed, 999 FAILED +fd cb __ 0e.json completed: 252 passed, 748 FAILED +fd cb __ 0f.json completed: 3 passed, 997 FAILED +fd cb __ 10.json completed: 4 passed, 996 FAILED +fd cb __ 11.json completed: 2 passed, 998 FAILED +fd cb __ 12.json completed: 1 passed, 999 FAILED +fd cb __ 13.json completed: 3 passed, 997 FAILED +fd cb __ 14.json completed: 2 passed, 998 FAILED +fd cb __ 15.json completed: 2 passed, 998 FAILED +fd cb __ 16.json completed: 237 passed, 763 FAILED +fd cb __ 17.json completed: 2 passed, 998 FAILED +fd cb __ 18.json completed: 1 passed, 999 FAILED +fd cb __ 19.json completed: 3 passed, 997 FAILED +fd cb __ 1a.json completed: 2 passed, 998 FAILED +fd cb __ 1b.json completed: 0 passed, 1000 FAILED +fd cb __ 1c.json completed: 3 passed, 997 FAILED +fd cb __ 1d.json completed: 1 passed, 999 FAILED +fd cb __ 1e.json completed: 250 passed, 750 FAILED +fd cb __ 1f.json completed: 0 passed, 1000 FAILED +fd cb __ 20.json completed: 5 passed, 995 FAILED +fd cb __ 21.json completed: 6 passed, 994 FAILED +fd cb __ 22.json completed: 3 passed, 997 FAILED +fd cb __ 23.json completed: 6 passed, 994 FAILED +fd cb __ 24.json completed: 6 passed, 994 FAILED +fd cb __ 25.json completed: 4 passed, 996 FAILED +fd cb __ 26.json completed: 257 passed, 743 FAILED +fd cb __ 27.json completed: 6 passed, 994 FAILED +fd cb __ 28.json completed: 2 passed, 998 FAILED +fd cb __ 29.json completed: 3 passed, 997 FAILED +fd cb __ 2a.json completed: 6 passed, 994 FAILED +fd cb __ 2b.json completed: 5 passed, 995 FAILED +fd cb __ 2c.json completed: 5 passed, 995 FAILED +fd cb __ 2d.json completed: 4 passed, 996 FAILED +fd cb __ 2e.json completed: 226 passed, 774 FAILED +fd cb __ 2f.json completed: 2 passed, 998 FAILED +fd cb __ 30.json completed: 0 passed, 1000 FAILED +fd cb __ 31.json completed: 0 passed, 1000 FAILED +fd cb __ 32.json completed: 0 passed, 1000 FAILED +fd cb __ 33.json completed: 0 passed, 1000 FAILED +fd cb __ 34.json completed: 0 passed, 1000 FAILED +fd cb __ 35.json completed: 0 passed, 1000 FAILED +fd cb __ 36.json completed: 234 passed, 766 FAILED +fd cb __ 37.json completed: 0 passed, 1000 FAILED +fd cb __ 38.json completed: 2 passed, 998 FAILED +fd cb __ 39.json completed: 3 passed, 997 FAILED +fd cb __ 3a.json completed: 3 passed, 997 FAILED +fd cb __ 3b.json completed: 4 passed, 996 FAILED +fd cb __ 3c.json completed: 5 passed, 995 FAILED +fd cb __ 3d.json completed: 8 passed, 992 FAILED +fd cb __ 3e.json completed: 250 passed, 750 FAILED +fd cb __ 3f.json completed: 2 passed, 998 FAILED +fd cb __ 40.json completed: 60 passed, 940 FAILED +fd cb __ 41.json completed: 80 passed, 920 FAILED +fd cb __ 42.json completed: 72 passed, 928 FAILED +fd cb __ 43.json completed: 51 passed, 949 FAILED +fd cb __ 44.json completed: 67 passed, 933 FAILED +fd cb __ 45.json completed: 50 passed, 950 FAILED +fd cb __ 46.json completed: 71 passed, 929 FAILED +fd cb __ 47.json completed: 62 passed, 938 FAILED +fd cb __ 48.json completed: 68 passed, 932 FAILED +fd cb __ 49.json completed: 62 passed, 938 FAILED +fd cb __ 4a.json completed: 58 passed, 942 FAILED +fd cb __ 4b.json completed: 80 passed, 920 FAILED +fd cb __ 4c.json completed: 67 passed, 933 FAILED +fd cb __ 4d.json completed: 62 passed, 938 FAILED +fd cb __ 4e.json completed: 77 passed, 923 FAILED +fd cb __ 4f.json completed: 68 passed, 932 FAILED +fd cb __ 50.json completed: 61 passed, 939 FAILED +fd cb __ 51.json completed: 68 passed, 932 FAILED +fd cb __ 52.json completed: 75 passed, 925 FAILED +fd cb __ 53.json completed: 55 passed, 945 FAILED +fd cb __ 54.json completed: 68 passed, 932 FAILED +fd cb __ 55.json completed: 65 passed, 935 FAILED +fd cb __ 56.json completed: 66 passed, 934 FAILED +fd cb __ 57.json completed: 74 passed, 926 FAILED +fd cb __ 58.json completed: 62 passed, 938 FAILED +fd cb __ 59.json completed: 69 passed, 931 FAILED +fd cb __ 5a.json completed: 61 passed, 939 FAILED +fd cb __ 5b.json completed: 55 passed, 945 FAILED +fd cb __ 5c.json completed: 61 passed, 939 FAILED +fd cb __ 5d.json completed: 68 passed, 932 FAILED +fd cb __ 5e.json completed: 57 passed, 943 FAILED +fd cb __ 5f.json completed: 54 passed, 946 FAILED +fd cb __ 60.json completed: 63 passed, 937 FAILED +fd cb __ 61.json completed: 69 passed, 931 FAILED +fd cb __ 62.json completed: 74 passed, 926 FAILED +fd cb __ 63.json completed: 69 passed, 931 FAILED +fd cb __ 64.json completed: 60 passed, 940 FAILED +fd cb __ 65.json completed: 57 passed, 943 FAILED +fd cb __ 66.json completed: 46 passed, 954 FAILED +fd cb __ 67.json completed: 69 passed, 931 FAILED +fd cb __ 68.json completed: 63 passed, 937 FAILED +fd cb __ 69.json completed: 58 passed, 942 FAILED +fd cb __ 6a.json completed: 70 passed, 930 FAILED +fd cb __ 6b.json completed: 64 passed, 936 FAILED +fd cb __ 6c.json completed: 62 passed, 938 FAILED +fd cb __ 6d.json completed: 65 passed, 935 FAILED +fd cb __ 6e.json completed: 70 passed, 930 FAILED +fd cb __ 6f.json completed: 50 passed, 950 FAILED +fd cb __ 70.json completed: 58 passed, 942 FAILED +fd cb __ 71.json completed: 65 passed, 935 FAILED +fd cb __ 72.json completed: 59 passed, 941 FAILED +fd cb __ 73.json completed: 60 passed, 940 FAILED +fd cb __ 74.json completed: 66 passed, 934 FAILED +fd cb __ 75.json completed: 56 passed, 944 FAILED +fd cb __ 76.json completed: 50 passed, 950 FAILED +fd cb __ 77.json completed: 60 passed, 940 FAILED +fd cb __ 78.json completed: 70 passed, 930 FAILED +fd cb __ 79.json completed: 71 passed, 929 FAILED +fd cb __ 7a.json completed: 71 passed, 929 FAILED +fd cb __ 7b.json completed: 55 passed, 945 FAILED +fd cb __ 7c.json completed: 64 passed, 936 FAILED +fd cb __ 7d.json completed: 65 passed, 935 FAILED +fd cb __ 7e.json completed: 63 passed, 937 FAILED +fd cb __ 7f.json completed: 62 passed, 938 FAILED +fd cb __ 80.json completed, all passed! +fd cb __ 81.json completed, all passed! +fd cb __ 82.json completed, all passed! +fd cb __ 83.json completed, all passed! +fd cb __ 84.json completed, all passed! +fd cb __ 85.json completed, all passed! +fd cb __ 86.json completed, all passed! +fd cb __ 87.json completed, all passed! +fd cb __ 88.json completed, all passed! +fd cb __ 89.json completed, all passed! +fd cb __ 8a.json completed, all passed! +fd cb __ 8b.json completed, all passed! +fd cb __ 8c.json completed, all passed! +fd cb __ 8d.json completed, all passed! +fd cb __ 8e.json completed, all passed! +fd cb __ 8f.json completed, all passed! +fd cb __ 90.json completed, all passed! +fd cb __ 91.json completed, all passed! +fd cb __ 92.json completed, all passed! +fd cb __ 93.json completed, all passed! +fd cb __ 94.json completed, all passed! +fd cb __ 95.json completed, all passed! +fd cb __ 96.json completed, all passed! +fd cb __ 97.json completed, all passed! +fd cb __ 98.json completed, all passed! +fd cb __ 99.json completed, all passed! +fd cb __ 9a.json completed, all passed! +fd cb __ 9b.json completed, all passed! +fd cb __ 9c.json completed, all passed! +fd cb __ 9d.json completed, all passed! +fd cb __ 9e.json completed, all passed! +fd cb __ 9f.json completed, all passed! +fd cb __ a0.json completed, all passed! +fd cb __ a1.json completed, all passed! +fd cb __ a2.json completed, all passed! +fd cb __ a3.json completed, all passed! +fd cb __ a4.json completed, all passed! +fd cb __ a5.json completed, all passed! +fd cb __ a6.json completed, all passed! +fd cb __ a7.json completed, all passed! +fd cb __ a8.json completed, all passed! +fd cb __ a9.json completed, all passed! +fd cb __ aa.json completed, all passed! +fd cb __ ab.json completed, all passed! +fd cb __ ac.json completed, all passed! +fd cb __ ad.json completed, all passed! +fd cb __ ae.json completed, all passed! +fd cb __ af.json completed, all passed! +fd cb __ b0.json completed, all passed! +fd cb __ b1.json completed, all passed! +fd cb __ b2.json completed, all passed! +fd cb __ b3.json completed, all passed! +fd cb __ b4.json completed, all passed! +fd cb __ b5.json completed, all passed! +fd cb __ b6.json completed, all passed! +fd cb __ b7.json completed, all passed! +fd cb __ b8.json completed, all passed! +fd cb __ b9.json completed, all passed! +fd cb __ ba.json completed, all passed! +fd cb __ bb.json completed, all passed! +fd cb __ bc.json completed, all passed! +fd cb __ bd.json completed, all passed! +fd cb __ be.json completed, all passed! +fd cb __ bf.json completed, all passed! +fd cb __ c0.json completed, all passed! +fd cb __ c1.json completed, all passed! +fd cb __ c2.json completed, all passed! +fd cb __ c3.json completed, all passed! +fd cb __ c4.json completed, all passed! +fd cb __ c5.json completed, all passed! +fd cb __ c6.json completed, all passed! +fd cb __ c7.json completed, all passed! +fd cb __ c8.json completed, all passed! +fd cb __ c9.json completed, all passed! +fd cb __ ca.json completed, all passed! +fd cb __ cb.json completed, all passed! +fd cb __ cc.json completed, all passed! +fd cb __ cd.json completed, all passed! +fd cb __ ce.json completed, all passed! +fd cb __ cf.json completed, all passed! +fd cb __ d0.json completed, all passed! +fd cb __ d1.json completed, all passed! +fd cb __ d2.json completed, all passed! +fd cb __ d3.json completed, all passed! +fd cb __ d4.json completed, all passed! +fd cb __ d5.json completed, all passed! +fd cb __ d6.json completed, all passed! +fd cb __ d7.json completed, all passed! +fd cb __ d8.json completed, all passed! +fd cb __ d9.json completed, all passed! +fd cb __ da.json completed, all passed! +fd cb __ db.json completed, all passed! +fd cb __ dc.json completed, all passed! +fd cb __ dd.json completed, all passed! +fd cb __ de.json completed, all passed! +fd cb __ df.json completed, all passed! +fd cb __ e0.json completed, all passed! +fd cb __ e1.json completed, all passed! +fd cb __ e2.json completed, all passed! +fd cb __ e3.json completed, all passed! +fd cb __ e4.json completed, all passed! +fd cb __ e5.json completed, all passed! +fd cb __ e6.json completed, all passed! +fd cb __ e7.json completed, all passed! +fd cb __ e8.json completed, all passed! +fd cb __ e9.json completed, all passed! +fd cb __ ea.json completed, all passed! +fd cb __ eb.json completed, all passed! +fd cb __ ec.json completed, all passed! +fd cb __ ed.json completed, all passed! +fd cb __ ee.json completed, all passed! +fd cb __ ef.json completed, all passed! +fd cb __ f0.json completed, all passed! +fd cb __ f1.json completed, all passed! +fd cb __ f2.json completed, all passed! +fd cb __ f3.json completed, all passed! +fd cb __ f4.json completed, all passed! +fd cb __ f5.json completed, all passed! +fd cb __ f6.json completed, all passed! +fd cb __ f7.json completed, all passed! +fd cb __ f8.json completed, all passed! +fd cb __ f9.json completed, all passed! +fd cb __ fa.json completed, all passed! +fd cb __ fb.json completed, all passed! +fd cb __ fc.json completed, all passed! +fd cb __ fd.json completed, all passed! +fd cb __ fe.json completed, all passed! +fd cb __ ff.json completed, all passed! +fd cc.json completed: 0 passed, 1000 FAILED +fd cd.json completed: 0 passed, 1000 FAILED +fd ce.json completed: 0 passed, 1000 FAILED +fd cf.json completed: 0 passed, 1000 FAILED +fd d0.json completed: 501 passed, 499 FAILED +fd d1.json completed: 0 passed, 1000 FAILED +fd d2.json completed: 0 passed, 1000 FAILED +fd d3.json completed: 0 passed, 1000 FAILED +fd d4.json completed: 0 passed, 1000 FAILED +fd d5.json completed: 0 passed, 1000 FAILED +fd d6.json completed: 0 passed, 1000 FAILED +fd d7.json completed: 0 passed, 1000 FAILED +fd d8.json completed: 510 passed, 490 FAILED +fd d9.json completed: 0 passed, 1000 FAILED +fd da.json completed: 0 passed, 1000 FAILED +fd db.json completed: 0 passed, 1000 FAILED +fd dc.json completed: 0 passed, 1000 FAILED +fd de.json completed: 0 passed, 1000 FAILED +fd df.json completed: 0 passed, 1000 FAILED +fd e0.json completed: 489 passed, 511 FAILED +fd e1.json completed, all passed! +fd e2.json completed: 0 passed, 1000 FAILED +fd e3.json completed: 999 passed, 1 FAILED +fd e4.json completed: 0 passed, 1000 FAILED +fd e5.json completed, all passed! +fd e6.json completed: 0 passed, 1000 FAILED +fd e7.json completed: 0 passed, 1000 FAILED +fd e8.json completed: 499 passed, 501 FAILED +fd e9.json completed, all passed! +fd ea.json completed: 0 passed, 1000 FAILED +fd eb.json completed: 0 passed, 1000 FAILED +fd ec.json completed: 0 passed, 1000 FAILED +fd ee.json completed: 0 passed, 1000 FAILED +fd ef.json completed: 0 passed, 1000 FAILED +fd f0.json completed: 528 passed, 472 FAILED +fd f1.json completed: 0 passed, 1000 FAILED +fd f2.json completed: 0 passed, 1000 FAILED +fd f3.json completed, all passed! +fd f4.json completed: 0 passed, 1000 FAILED +fd f5.json completed: 0 passed, 1000 FAILED +fd f6.json completed: 0 passed, 1000 FAILED +fd f7.json completed: 0 passed, 1000 FAILED +fd f8.json completed: 511 passed, 489 FAILED +fd f9.json completed, all passed! +fd fa.json completed: 0 passed, 1000 FAILED +fd fb.json completed, all passed! +fd fc.json completed: 0 passed, 1000 FAILED +fd fe.json completed: 0 passed, 1000 FAILED +fd ff.json completed: 0 passed, 1000 FAILED +fe.json completed: 120 passed, 880 FAILED +ff.json completed, all passed! + +passed: 727061, failed: 882939, total 45% +completed in 25m 9s