Dependency inversions
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user