]> Joshua Wise's Git repositories - fpgaboy.git/blobdiff - insn_rst.v
Finish splitting out functions.
[fpgaboy.git] / insn_rst.v
diff --git a/insn_rst.v b/insn_rst.v
new file mode 100644 (file)
index 0000000..8752034
--- /dev/null
@@ -0,0 +1,36 @@
+`ifdef EXECUTE
+       `INSN_RST: begin
+               case (cycle)
+               0:      begin
+                               `EXEC_INC_PC;           // This goes FIRST in RST
+                       end
+               1:      begin
+                               wr <= 1;
+                               address <= {registers[`REG_SPH],registers[`REG_SPL]}-1;
+                               wdata <= registers[`REG_PCH];
+                       end
+               2:      begin
+                               wr <= 1;
+                               address <= {registers[`REG_SPH],registers[`REG_SPL]}-2;
+                               wdata <= registers[`REG_PCL];
+                       end
+               3:      begin
+                               `EXEC_NEWCYCLE;
+                               {registers[`REG_PCH],registers[`REG_PCL]} <=
+                                       {10'b0,opcode[5:3],3'b0};
+                       end
+               endcase
+       end
+`endif
+
+`ifdef WRITEBACK
+       `INSN_RST: begin
+               case (cycle)
+               0:      begin /* type F */ end
+               1:      begin /* type F */ end
+               2:      begin /* type F */ end
+               3:      {registers[`REG_SPH],registers[`REG_SPL]} <=
+                               {registers[`REG_SPH],registers[`REG_SPL]}-2;
+               endcase
+       end
+`endif
This page took 0.024116 seconds and 4 git commands to generate.