MOS6502Environment.java

1
package com.rox.cpu.mos6502;
2
3
/**
4
 * WIP...
5
 *
6
 *  Status Flags
7
 *  Bit:   7 6 5 4 3 2 1 0
8
 *        +---------------+
9
 *        |N|V|1|B|D|I|Z|C|
10
 *        +---------------+
11
 */
12
public class MOS6502Environment {
13
    public boolean negative;         //0x80
14
    public boolean signedOverflow;   //0x40
15
    public boolean breakFlag;        //0x10
16
    public boolean d;                //0x08
17
    public boolean i;                //0x04
18
    public boolean zero;             //0x02
19
    public boolean carry;            //0x01
20
21
    private int pc;                  //16 bit program counter
22
    private int ir;                  //instruction register
23
    private int adl;                 //(1/2) address data low byte
24
    private int adh;                 //(2/2) address data high byte
25
    private int a;                   //accumulator
26
    private int x;                   //X register
27
    private int y;                   //Y registers
28
    private int stackPointer = 0xFF; //Low byte of the stack pointer $01:XX
29
30
    private boolean irqLineAsserted;
31
    private boolean nmiPending;
32
33
    private MOS6502Operation pendingOperation;
34
35
    MOS6502Environment(){
36
        this(false, false, false, false, false, 0,0,0,0,0, 0,0);
37
    }
38
39
    MOS6502Environment(boolean c, boolean z, boolean n, boolean v, boolean breakFlag,
40
                       int pc, int ir, int adl, int adh, int a, int x, int y){
41
        this.carry = c;
42
        this.zero = z;
43
        this.negative = n;
44
        this.signedOverflow = v;
45
        this.breakFlag = breakFlag;
46
        this.pc = pc;
47
        this.ir = ir;
48
        this.adl = adl;
49
        this.adh = adh;
50
        this.a = a;
51
        this.x = x;
52
        this.y = y;
53
    }
54
55
    public int getIR(){
56 1 1. getIR : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getIR → KILLED
        return this.ir;
57
    }
58
59
    public void setIR(final int value){
60 1 1. setIR : Replaced bitwise AND with OR → KILLED
        this.ir = value & 0xFF;
61
    }
62
63
    public int getADL(){
64 2 1. getADL : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getADL → KILLED
2. getADL : Replaced bitwise AND with OR → KILLED
        return this.adl & 0xFF;
65
    }
66
67
    public void setADL(final int value){
68 1 1. setADL : Replaced bitwise AND with OR → KILLED
        this.adl = value & 0xFF;
69
    }
70
71
    public int getADH() {
72 2 1. getADH : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getADH → KILLED
2. getADH : Replaced bitwise AND with OR → KILLED
        return this.adh & 0xFF;
73
    }
74
75
    public int getAD(){
76 4 1. getAD : Replaced bitwise AND with OR → KILLED
2. getAD : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getAD → KILLED
3. getAD : Replaced bitwise OR with AND → KILLED
4. getAD : Replaced Shift Left with Shift Right → KILLED
        return (getADH() << 8 | getADL()) & 0xFFFF;
77
    }
78
79
    public void setADH(final int value) {
80 1 1. setADH : Replaced bitwise AND with OR → KILLED
        this.adh = value & 0xFF;
81
    }
82
83
    public void setA(final int value){
84 1 1. setA : Replaced bitwise AND with OR → KILLED
        this.a = value & 0xFF;
85
    }
86
87
    public int getA() {
88 2 1. getA : Replaced bitwise AND with OR → KILLED
2. getA : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getA → KILLED
        return a & 0xFF;
89
    }
90
91
    public int getPC() {
92 1 1. getPC : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPC → KILLED
        return pc;
93
    }
94
95
    public void setPC(final int newPC) {
96
        this.pc = newPC;
97
    }
98
99
    public void setPCL(final int newPCL) {
100 3 1. setPCL : Replaced bitwise AND with OR → KILLED
2. setPCL : Replaced bitwise OR with AND → KILLED
3. setPCL : Replaced bitwise AND with OR → KILLED
        this.pc = (this.pc & 0xFF00) | (newPCL & 0xFF);
101
    }
102
103
    public int getPCL() {
104 2 1. getPCL : Replaced bitwise AND with OR → KILLED
2. getPCL : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPCL → KILLED
        return this.pc & 0xFF;
105
    }
106
107
    public void setPCH(final int newPCH) {
108 4 1. setPCH : Replaced Shift Left with Shift Right → KILLED
2. setPCH : Replaced bitwise AND with OR → KILLED
3. setPCH : Replaced bitwise AND with OR → KILLED
4. setPCH : Replaced bitwise OR with AND → KILLED
        this.pc = (this.pc & 0x00FF) | ((newPCH << 8) & 0xFF00);
109
    }
110
111
    public int getPCH() {
112 3 1. getPCH : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPCH → KILLED
2. getPCH : Replaced Shift Right with Shift Left → KILLED
3. getPCH : Replaced bitwise AND with OR → KILLED
        return (this.pc >> 8) & 0xFF;
113
    }
114
115
    public int getX() {
116 1 1. getX : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getX → KILLED
        return this.x;
117
    }
118
119
    public void setX(int newX) {
120
        this.x = newX;
121
    }
122
123
    public void setY(int newY) {
124
        this.y = newY;
125
    }
126
127
    public int getY() {
128 1 1. getY : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getY → KILLED
        return y;
129
    }
130
131
    public boolean getCarry() {
132 2 1. getCarry : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getCarry → KILLED
2. getCarry : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getCarry → KILLED
        return carry;
133
    }
134
135
    public void setV(final boolean newV){
136
        this.signedOverflow = newV;
137
    }
138
139
    public boolean getV() {
140 2 1. getV : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getV → KILLED
2. getV : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getV → KILLED
        return signedOverflow;
141
    }
142
143
    public void setN(final boolean newN){
144
        this.negative = newN;
145
    }
146
147
    public boolean getN() {
148 2 1. getN : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getN → KILLED
2. getN : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getN → KILLED
        return negative;
149
    }
150
151
    public void setZ(final boolean newZ) {
152
        this.zero = newZ;
153
    }
154
155
    public boolean getZ() {
156 2 1. getZ : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getZ → KILLED
2. getZ : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getZ → KILLED
        return zero;
157
    }
158
159
    public void setD(boolean newD) {
160
        this.d = newD;
161
    }
162
163
    public boolean getD(){
164 2 1. getD : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getD → KILLED
2. getD : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getD → KILLED
        return d;
165
    }
166
167
    public void setI(boolean newI) {
168
        this.i = newI;
169
    }
170
171
    public boolean getI(){
172 2 1. getI : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getI → KILLED
2. getI : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getI → KILLED
        return i;
173
    }
174
175
    public void setCarry(boolean carry) {
176
        this.carry = carry;
177
    }
178
179
    public void setStackPointer(final int newStackLowByteValue){
180 1 1. setStackPointer : Replaced bitwise AND with OR → KILLED
        this.stackPointer = newStackLowByteValue & 0xFF;
181
    }
182
183
    public int getStackPointer(){
184 2 1. getStackPointer : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getStackPointer → KILLED
2. getStackPointer : Replaced bitwise AND with OR → KILLED
        return this.stackPointer & 0xFF;
185
    }
186
187
    /**
188
     * Get the current state of the status register
189
     * <pre>
190
     * Bit:   7 6 5 4 3 2 1 0
191
     *       +---------------+
192
     *       |N|V|1|B|D|I|Z|C|
193
     *       +---------------+
194
     * </pre>
195
     */
196
    public int getStatus(boolean breakFlag) {
197 2 1. getStatus : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getStatus → KILLED
2. getStatus : negated conditional → KILLED
        return (getN() ? 0x80 : 0)
198 3 1. getStatus : Replaced bitwise OR with AND → KILLED
2. getStatus : negated conditional → KILLED
3. getStatus : Replaced bitwise OR with AND → KILLED
                | (getV() ? 0x40 : 0)
199
                | 0x20                     // bit 5 always set for now
200 2 1. getStatus : Replaced bitwise OR with AND → KILLED
2. getStatus : negated conditional → KILLED
                | (breakFlag ? 0x10 : 0)
201 2 1. getStatus : negated conditional → KILLED
2. getStatus : Replaced bitwise OR with AND → KILLED
                | (getD() ? 0x08 : 0)
202 2 1. getStatus : negated conditional → KILLED
2. getStatus : Replaced bitwise OR with AND → KILLED
                | (getI() ? 0x04 : 0)
203 2 1. getStatus : negated conditional → KILLED
2. getStatus : Replaced bitwise OR with AND → KILLED
                | (getZ() ? 0x02 : 0)
204 2 1. getStatus : Replaced bitwise OR with AND → KILLED
2. getStatus : negated conditional → KILLED
                | (getCarry() ? 0x01 : 0);
205
    }
206
207
    public void setStatus(int newStatus) {
208 3 1. setStatus : Replaced bitwise AND with OR → KILLED
2. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED
3. setStatus : negated conditional → KILLED
        setN((newStatus & 0x80) != 0);
209 3 1. setStatus : negated conditional → KILLED
2. setStatus : Replaced bitwise AND with OR → KILLED
3. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED
        setV((newStatus & 0x40) != 0);
210
        // ignore bits 5 and 4
211 3 1. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setD → KILLED
2. setStatus : Replaced bitwise AND with OR → KILLED
3. setStatus : negated conditional → KILLED
        setD((newStatus & 0x08) != 0);
212 3 1. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setI → KILLED
2. setStatus : Replaced bitwise AND with OR → KILLED
3. setStatus : negated conditional → KILLED
        setI((newStatus & 0x04) != 0);
213 3 1. setStatus : negated conditional → KILLED
2. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED
3. setStatus : Replaced bitwise AND with OR → KILLED
        setZ((newStatus & 0x02) != 0);
214 3 1. setStatus : Replaced bitwise AND with OR → KILLED
2. setStatus : removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED
3. setStatus : negated conditional → KILLED
        setCarry((newStatus & 0x01) != 0);
215
    }
216
217
    /**
218
     * Level-sensitive hardware IRQ line, held asserted by a device until it's serviced or the device deasserts it.<br/>
219
     *<br/>
220
     * Vector: FFFE/FFFF<br/>
221
     * Maskable: using {@link MOS6502Environment#setI(boolean)} flag.<br/>
222
     */
223
    public void setIRQLine(boolean asserted){
224
        this.irqLineAsserted = asserted;
225
    }
226
227
    public boolean isIRQLineAsserted(){
228 2 1. isIRQLineAsserted : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::isIRQLineAsserted → KILLED
2. isIRQLineAsserted : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::isIRQLineAsserted → KILLED
        return irqLineAsserted;
229
    }
230
231
    /**
232
     * Edge-latched hardware NMI signal, set by a device and cleared once serviced.<br/>
233
     *<br/>
234
     * Vector: FFFA/FFFB<br/>
235
     * Maskable: No<br/>
236
     * <br>
237
     * <b>Edge-latched</b> <i>This toggles on a flag {@link MOS6502Environment#hasPendingInterrupt()} on when electronic
238
     * signal falling edge occurs.  In a circuit this would mean that in order to retrigger, the signal would need to
239
     * rise to high then fall again.  To us this means it's toggled on until it is addressed.</i>
240
     */
241
    public void signalNMI(){
242
        this.nmiPending = true;
243
    }
244
245
    boolean isNMIPending(){
246 2 1. isNMIPending : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::isNMIPending → KILLED
2. isNMIPending : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::isNMIPending → KILLED
        return nmiPending;
247
    }
248
249
    /** @return true and clears the pending flag if an NMI was latched, false (no change) otherwise */
250
    public boolean consumeNMI(){
251
        boolean pending = nmiPending;
252
        nmiPending = false;
253 2 1. consumeNMI : replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::consumeNMI → KILLED
2. consumeNMI : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::consumeNMI → KILLED
        return pending;
254
    }
255
256
    /** @return true if a hardware interrupt should be serviced at the next instruction boundary. NMI is non-maskable and takes priority over IRQ. */
257
    public boolean hasPendingInterrupt(){
258 4 1. hasPendingInterrupt : negated conditional → KILLED
2. hasPendingInterrupt : negated conditional → KILLED
3. hasPendingInterrupt : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::hasPendingInterrupt → KILLED
4. hasPendingInterrupt : negated conditional → KILLED
        return nmiPending || (irqLineAsserted && !getI());
259
    }
260
261
    public boolean additionalTickPending(){
262
        //XXX (1/4) Workaround for opcodes which have varying cycles
263 2 1. additionalTickPending : negated conditional → KILLED
2. additionalTickPending : replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::additionalTickPending → KILLED
        return pendingOperation!=null;
264
    }
265
266
    public void requestAdditionalOp(MOS6502Operation operation) {
267
        //XXX (2/4) Workaround for opcodes which have varying cycles
268
        this.pendingOperation = operation;
269
    }
270
271
    public MOS6502Operation getPendingOperation(){
272
        //XXX (3/4) Workaround for opcodes which have varying cycles
273 1 1. getPendingOperation : replaced return value with null for com/rox/cpu/mos6502/MOS6502Environment::getPendingOperation → KILLED
        return this.pendingOperation;
274
    }
275
276
    public void additionalTickCompleted(){
277
        //XXX (4/4) Workaround for opcodes which have varying cycles
278
        pendingOperation = null;
279
    }
280
281
    /** Overflow safe PC + increment */
282
    public int getAndIncrementPC(){
283
        int cached_pc = pc;
284 2 1. getAndIncrementPC : Replaced integer addition with subtraction → KILLED
2. getAndIncrementPC : Replaced bitwise AND with OR → KILLED
        pc = (pc + 1) & 0xFFFF;
285 1 1. getAndIncrementPC : replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getAndIncrementPC → KILLED
        return cached_pc;
286
    }
287
288
    public MOS6502Environment clone(){
289
        final MOS6502Environment copy = new MOS6502Environment(carry, zero, negative, signedOverflow, breakFlag, pc, ir, adl, adh, a, x, y);
290
        copy.i = i;
291
        copy.d = d;
292
        copy.stackPointer = stackPointer;
293
        copy.irqLineAsserted = irqLineAsserted;
294
        copy.nmiPending = nmiPending;
295 1 1. clone : replaced return value with null for com/rox/cpu/mos6502/MOS6502Environment::clone → KILLED
        return copy;
296
    }
297
298
    @Override
299
    public String toString() {
300 1 1. toString : replaced return value with "" for com/rox/cpu/mos6502/MOS6502Environment::toString → NO_COVERAGE
        return "pc:"+pc+", ir:"+ir+", ad["+adh+":"+adl+"], a:"+a+", x:"+x+" | F[c:"+carry+", z:"+ zero +", n:"+ negative +", v:"+ signedOverflow +"]";
301
    }
302
}

Mutations

56

1.1
Location : getIR
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:fetchEndToEnd()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getIR → KILLED

60

1.1
Location : setIR
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:fetchEndToEnd()]
Replaced bitwise AND with OR → KILLED

64

1.1
Location : getADL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getADL → KILLED

2.2
Location : getADL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

68

1.1
Location : setADL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

72

1.1
Location : getADH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getADH → KILLED

2.2
Location : getADH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

76

1.1
Location : getAD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

2.2
Location : getAD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getAD → KILLED

3.3
Location : getAD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise OR with AND → KILLED

4.4
Location : getAD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced Shift Left with Shift Right → KILLED

80

1.1
Location : setADH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:adToPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

84

1.1
Location : setA
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
Replaced bitwise AND with OR → KILLED

88

1.1
Location : getA
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
Replaced bitwise AND with OR → KILLED

2.2
Location : getA
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getA → KILLED

92

1.1
Location : getPC
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:incPcEndToEnd()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPC → KILLED

100

1.1
Location : setPCL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPclEndToEnd()]
Replaced bitwise AND with OR → KILLED

2.2
Location : setPCL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPclEndToEnd()]
Replaced bitwise OR with AND → KILLED

3.3
Location : setPCL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPclEndToEnd()]
Replaced bitwise AND with OR → KILLED

104

1.1
Location : getPCL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:PUSH_PCH]/[nested-class:PUSH_PCL]/[method:pushPclUsesStackPageNotZeroPage()]
Replaced bitwise AND with OR → KILLED

2.2
Location : getPCL
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:PUSH_PCH]/[nested-class:PUSH_PCL]/[test-template:pushPclStoresProgramCounterLowByteAtCurrentStackPointerAddress(int, int, int)]/[test-template-invocation:#3]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPCL → KILLED

108

1.1
Location : setPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPchEndToEnd()]
Replaced Shift Left with Shift Right → KILLED

2.2
Location : setPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPchEndToEnd()]
Replaced bitwise AND with OR → KILLED

3.3
Location : setPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPchEndToEnd()]
Replaced bitwise AND with OR → KILLED

4.4
Location : setPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:memToPchEndToEnd()]
Replaced bitwise OR with AND → KILLED

112

1.1
Location : getPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:PUSH_PCH]/[method:pushPchWrapsStackPointerFromZeroToFf()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getPCH → KILLED

2.2
Location : getPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:PUSH_PCH]/[method:pushPchWrapsStackPointerFromZeroToFf()]
Replaced Shift Right with Shift Left → KILLED

3.3
Location : getPCH
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:PUSH_PCH]/[method:pushPchWrapsStackPointerFromZeroToFf()]
Replaced bitwise AND with OR → KILLED

116

1.1
Location : getX
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#7]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getX → KILLED

128

1.1
Location : getY
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:INY]/[method:inyIncrementsY()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getY → KILLED

132

1.1
Location : getCarry
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testASL(int, int, boolean)]/[test-template-invocation:#2]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getCarry → KILLED

2.2
Location : getCarry
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testROR(int, boolean, int, boolean)]/[test-template-invocation:#4]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getCarry → KILLED

140

1.1
Location : getV
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#6]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getV → KILLED

2.2
Location : getV
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testBIT(int, int, boolean, boolean, boolean)]/[test-template-invocation:#7]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getV → KILLED

148

1.1
Location : getN
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getN → KILLED

2.2
Location : getN
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPX(int, int, boolean, boolean, boolean)]/[test-template-invocation:#7]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getN → KILLED

156

1.1
Location : getZ
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testEOR(int, int, int, boolean, boolean)]/[test-template-invocation:#12]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getZ → KILLED

2.2
Location : getZ
Killed by : com.rox.cpu.mos6502.MOS6502ALUTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502ALUTest]/[test-template:testCPY(int, int, boolean, boolean, boolean)]/[test-template-invocation:#5]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getZ → KILLED

164

1.1
Location : getD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:SET_DECIMAL]/[method:setDecimalSetsDTrue()]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getD → KILLED

2.2
Location : getD
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:CLEAR_DECIMAL]/[method:clearDecimalSetsDFalse()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getD → KILLED

172

1.1
Location : getI
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:irqIsMaskedByInterruptDisableFlag()]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::getI → KILLED

2.2
Location : getI
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:nmiTakesPriorityOverIRQWhenBothPending()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::getI → KILLED

180

1.1
Location : setStackPointer
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:cloneCopiesTheStackPointer()]
Replaced bitwise AND with OR → KILLED

184

1.1
Location : getStackPointer
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:cloneCopiesTheStackPointer()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getStackPointer → KILLED

2.2
Location : getStackPointer
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:cloneCopiesTheStackPointer()]
Replaced bitwise AND with OR → KILLED

197

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getStatus → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

198

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

3.3
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[test-template:phpPushesProcessorStatusToStackAndDecrementsStackPointer(boolean, boolean, boolean, boolean, boolean, boolean)]/[test-template-invocation:#7]
Replaced bitwise OR with AND → KILLED

200

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

201

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

202

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

203

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

204

1.1
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PUSH_PROCESSOR_STATUS_WITH_BREAK]/[method:pushAlwaysPushesBreakAndUnusedBitsAsSet()]
Replaced bitwise OR with AND → KILLED

2.2
Location : getStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PHP]/[method:phpAlwaysPushesBreakAndUnusedBitsAsSet()]
negated conditional → KILLED

208

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullDoesNotChangeRegistersAorIndexOrRemoveMemoryValue()]
Replaced bitwise AND with OR → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setN → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
negated conditional → KILLED

209

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
negated conditional → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullDoesNotChangeRegistersAorIndexOrRemoveMemoryValue()]
Replaced bitwise AND with OR → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setV → KILLED

211

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setD → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullDoesNotChangeRegistersAorIndexOrRemoveMemoryValue()]
Replaced bitwise AND with OR → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
negated conditional → KILLED

212

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setI → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
Replaced bitwise AND with OR → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
negated conditional → KILLED

213

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
negated conditional → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setZ → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullProcessorStatusLoadsFlagsFromStackAndIncrementsStackPointer()]
Replaced bitwise AND with OR → KILLED

214

1.1
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullDoesNotChangeRegistersAorIndexOrRemoveMemoryValue()]
Replaced bitwise AND with OR → KILLED

2.2
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullWrapsStackPointerFromFfToZeroBeforeReading()]
removed call to com/rox/cpu/mos6502/MOS6502Environment::setCarry → KILLED

3.3
Location : setStatus
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:PULL_PROCESSOR_STATUS]/[method:pullWrapsStackPointerFromFfToZeroBeforeReading()]
negated conditional → KILLED

228

1.1
Location : isIRQLineAsserted
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:assertingIRQLineIsVisible()]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::isIRQLineAsserted → KILLED

2.2
Location : isIRQLineAsserted
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:deassertingIRQLineClearsIt()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::isIRQLineAsserted → KILLED

246

1.1
Location : isNMIPending
Killed by : com.rox.cpu.mos6502.MOS6502SnapshotTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502SnapshotTest]/[method:restoredCpuRunsOnInLockstepWithTheOriginal()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::isNMIPending → KILLED

2.2
Location : isNMIPending
Killed by : com.rox.cpu.mos6502.MOS6502SnapshotTest.[engine:jqwik]/[class:com.rox.cpu.mos6502.MOS6502SnapshotTest]/[property:restoreThenSnapshotRoundTripsEveryField(int, int, int, int, int, int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::isNMIPending → KILLED

253

1.1
Location : consumeNMI
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:nmiTakesPriorityOverIRQWhenBothPending()]
replaced boolean return with false for com/rox/cpu/mos6502/MOS6502Environment::consumeNMI → KILLED

2.2
Location : consumeNMI
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:consumingNMIWhenNoneWasSignalledReturnsFalse()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::consumeNMI → KILLED

258

1.1
Location : hasPendingInterrupt
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:nmiTakesPriorityOverIRQWhenBothPending()]
negated conditional → KILLED

2.2
Location : hasPendingInterrupt
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:nmiTakesPriorityOverIRQWhenBothPending()]
negated conditional → KILLED

3.3
Location : hasPendingInterrupt
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:irqIsMaskedByInterruptDisableFlag()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::hasPendingInterrupt → KILLED

4.4
Location : hasPendingInterrupt
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:irqIsMaskedByInterruptDisableFlag()]
negated conditional → KILLED

263

1.1
Location : additionalTickPending
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:BranchMechanics]/[method:notTakenReadsOffsetButLeavesPcAndPendingOpUntouched()]
negated conditional → KILLED

2.2
Location : additionalTickPending
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:BranchMechanics]/[method:notTakenReadsOffsetButLeavesPcAndPendingOpUntouched()]
replaced boolean return with true for com/rox/cpu/mos6502/MOS6502Environment::additionalTickPending → KILLED

273

1.1
Location : getPendingOperation
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[nested-class:BranchMechanics]/[method:takenWithMaximumPositiveOffsetAppliesCorrectSignExtension()]
replaced return value with null for com/rox/cpu/mos6502/MOS6502Environment::getPendingOperation → KILLED

284

1.1
Location : getAndIncrementPC
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:incPcEndToEnd()]
Replaced integer addition with subtraction → KILLED

2.2
Location : getAndIncrementPC
Killed by : com.rox.cpu.mos6502.MOS6502MicroOpTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502MicroOpTest]/[method:incPcEndToEnd()]
Replaced bitwise AND with OR → KILLED

285

1.1
Location : getAndIncrementPC
Killed by : com.rox.cpu.mos6502.MOS6502OpCodeTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502OpCodeTest]/[nested-class:CLC]/[method:clcClearsCarryFlag()]
replaced int return with 0 for com/rox/cpu/mos6502/MOS6502Environment::getAndIncrementPC → KILLED

295

1.1
Location : clone
Killed by : com.rox.cpu.mos6502.MOS6502EnvironmentTest.[engine:junit-jupiter]/[class:com.rox.cpu.mos6502.MOS6502EnvironmentTest]/[method:cloneCopiesTheDecimalFlag()]
replaced return value with null for com/rox/cpu/mos6502/MOS6502Environment::clone → KILLED

300

1.1
Location : toString
Killed by : none
replaced return value with "" for com/rox/cpu/mos6502/MOS6502Environment::toString → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.22.1