Dependency inversions

This commit is contained in:
2025-01-26 15:44:01 +01:00
parent c8f23176d2
commit 52daa062df
27 changed files with 955 additions and 482 deletions

View File

@ -1,13 +1,15 @@
package fabrik.simulator.pic16f84;
import fabrik.simulator.pic16f84.interfaces.ProgramStackInterface;
import java.util.ArrayList;
import java.util.List;
public class ProgramStack {
private static List<Integer> returnStack = new ArrayList<>(8);
private static int stackIndex = 0;
public class ProgramStack implements ProgramStackInterface {
private List<Integer> returnStack = new ArrayList<>(8);
private int stackIndex = 0;
private static void incIndex(){
private void incIndex(){
if (stackIndex == 7){
stackIndex = 0;
}
@ -16,7 +18,7 @@ public class ProgramStack {
}
}
public static void push(int value) {
public void push(int value) {
if ((returnStack.size() != 8 ) && (returnStack.size() <= stackIndex)){
returnStack.add(value);
incIndex();
@ -27,21 +29,21 @@ public class ProgramStack {
}
}
public static int pop() {
public int pop() {
stackIndex = (stackIndex > 0) ? --stackIndex : 7;
return returnStack.get(stackIndex)-1;
}
public static void reset (){
public void reset (){
returnStack.clear();
stackIndex = 0;
}
public static int getStackPointer(){
public int getStackPointer(){
return stackIndex;
}
public static List<Integer> getStack() {
public List<Integer> getStack() {
return returnStack;
}
}