This commit is contained in:
Darkress
2023-05-31 14:21:35 +02:00
parent 2cfc14ba78
commit d0d30b4db8
4 changed files with 23 additions and 18 deletions

View File

@@ -59,6 +59,10 @@ public class Memory
}
memory[address] = data;
memory[address + 128] = data; //Ensure data is written to both banks to simulate mapping
if(address == 0x2) //Check if PCL is destination
{
ProgramCounter.loadPc();
}
}
private static int getDataFromIndirectAddress(int address)
@@ -75,6 +79,10 @@ public class Memory
}
memory[address % 128] = data; // else: Registers.Registers which are mapped
memory[address % 128 + 128] = data; //Ensure data is written to both banks to simulate mapping
if(address == 0x2) //Check if PCL is destination
{
ProgramCounter.loadPc();
}
}
private static int getRegisterBank()

View File

@@ -20,19 +20,20 @@ public class ProgramCounter
pc = (pch) + pcl;
}
public static void setPcFromStack(int stack)
{
pc = stack;
Memory.setPCL(pc & 0x00FF);
}
public static void loadPc()
{
pc = (Memory.getPCLATH() <<8) + Memory.getPCL();
}
public static void incPC() //is called after every instruction execution
{
int pcl = Memory.getPCL();
int pclath = Memory.getPCLATH();
if(pcl == 0xFF)
{
pclath++;
pcl = 0;
} else {
pcl++;
}
Memory.setPCL(pcl);
Memory.setPCLATH(pclath);
pc = (pclath <<8) + pcl;
pc++;
Memory.setPCL(pc & 0x00FF);
}
}