cpu - Fix incorrect flag numbering
This commit is contained in:
parent
7cfad439f8
commit
d0b620f1ad
13
cpu.js
13
cpu.js
|
|
@ -20,6 +20,7 @@ const CPU = {
|
|||
running: false,
|
||||
IP: INITIAL_IP_ADDRESS,
|
||||
FLAGS: 0, // A bit field! 0000 = ONZC
|
||||
FlagNames: ['C', 'Z', 'N', 'O'],
|
||||
Acc: 0,
|
||||
memory: null,
|
||||
|
||||
|
|
@ -233,24 +234,24 @@ const Instructions = {
|
|||
},
|
||||
|
||||
flag_toggle: (flagNum) => {
|
||||
CPU.currentInstruction.mnemonic = 'FTG';
|
||||
CPU.currentInstruction.mnemonic = `FTG; ${CPU.FlagNames[flagNum]}`;
|
||||
let mask = null;
|
||||
if (flagNum === 0) { mask = 1; }
|
||||
if (flagNum === 1) { mask = 2; }
|
||||
if (flagNum === 2) { mask = 4; }
|
||||
if (flagNum === 3) { mask = 8; }
|
||||
if (flagNum === 2) { mask = 8; }
|
||||
if (flagNum === 3) { mask = 16; }
|
||||
if (mask === null) { throw new Error('Invalid flag number'); }
|
||||
CPU.FLAGS = CPU.FLAGS ^= mask;
|
||||
CPU.incrementIP(2);
|
||||
},
|
||||
|
||||
flag_hop: (flagNum) => {
|
||||
CPU.currentInstruction.mnemonic = `FHP; IP+2: ${CPU.memory[CPU.IP+2]}, IP+3: ${CPU.memory[CPU.IP+3]}`;
|
||||
CPU.currentInstruction.mnemonic = `FTG; ${CPU.FlagNames[flagNum]}; IP+2: ${CPU.memory[CPU.IP+2]}, IP+3: ${CPU.memory[CPU.IP+3]}`;
|
||||
let mask = null;
|
||||
if (flagNum === 0) { mask = 1; }
|
||||
if (flagNum === 1) { mask = 2; }
|
||||
if (flagNum === 2) { mask = 4; }
|
||||
if (flagNum === 3) { mask = 8; }
|
||||
if (flagNum === 2) { mask = 8; }
|
||||
if (flagNum === 3) { mask = 16; }
|
||||
if (mask === null) { throw new Error('Invalid flag number'); }
|
||||
if (CPU.FLAGS & mask) {
|
||||
CPU.incrementIP(4);
|
||||
|
|
|
|||
Loading…
Reference in New Issue