소스 검색

Implement C and R

Implemented the Call and Ret instructions.
ApisNecros 1 년 전
부모
커밋
4130af3910
1개의 변경된 파일15개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      starfish.js

+ 15 - 0
starfish.js

@@ -463,6 +463,21 @@ class CodeBox {
                     this.pointer.X = this.stacks[this.curr_stack].Pop();
                     break;
                 }
+                case "C": {
+                    const currCoords = new Stack([this.pointer.X, this.pointer.Y]);
+                    this.stacks.splice(this.curr_stack, 0, currCoords);
+                    this.curr_stack++;
+                    this.pointer.Y = this.stacks[this.curr_stack].Pop();
+                    this.pointer.X = this.stacks[this.curr_stack].Pop();
+                    break;
+                }
+                case "R": {
+                    const newCoords = this.stacks.splice(this.curr_stack - 1, 1).pop();
+                    this.curr_stack--;
+                    this.pointer.Y = newCoords.Pop()
+                    this.pointer.X = newCoords.Pop();
+                    break;
+                }
                 // End execution
                 case ";":
                     output = true;