mirror of
https://github.com/sxpert/hp-saturn
synced 2024-12-27 09:58:16 +01:00
implement GOSUB (7xxx)
This commit is contained in:
parent
e9e7a6a5f0
commit
7b64f3e297
2 changed files with 5 additions and 4 deletions
|
@ -266,10 +266,10 @@ always @(posedge i_clk) begin
|
||||||
4'h1: block_1x <= 1'b1;
|
4'h1: block_1x <= 1'b1;
|
||||||
4'h2: block_2x <= 1'b1;
|
4'h2: block_2x <= 1'b1;
|
||||||
4'h3: block_3x <= 1'b1;
|
4'h3: block_3x <= 1'b1;
|
||||||
4'h6:
|
4'h6, 4'h7:
|
||||||
begin
|
begin
|
||||||
o_instr_type <= `INSTR_TYPE_JUMP;
|
o_instr_type <= `INSTR_TYPE_JUMP;
|
||||||
// o_push_pc <= i_nibble[1];
|
o_push_pc <= i_nibble[0];
|
||||||
o_jump_length <= 3'd2;
|
o_jump_length <= 3'd2;
|
||||||
jump_counter <= 3'd0;
|
jump_counter <= 3'd0;
|
||||||
o_instr_execute <= 1'b1;
|
o_instr_execute <= 1'b1;
|
||||||
|
|
|
@ -198,10 +198,11 @@ always @(posedge i_clk) begin
|
||||||
*/
|
*/
|
||||||
if (i_phases[3] && do_jump_instr && !jump_decode) begin
|
if (i_phases[3] && do_jump_instr && !jump_decode) begin
|
||||||
`ifdef SIM
|
`ifdef SIM
|
||||||
$display("PC_RSTK %0d: [%d] start decode jump %0d | jump_base %5h", i_phase, i_cycle_ctr, i_jump_length, reg_PC);
|
$display("PC_RSTK %0d: [%d] start decode jump %0d | jump_base %5h", i_phase, i_cycle_ctr,
|
||||||
|
i_jump_length, i_push_pc? reg_PC + {{17{1'b0}},(i_jump_length + 3'd1)} : reg_PC);
|
||||||
`endif
|
`endif
|
||||||
jump_counter <= 3'd0;
|
jump_counter <= 3'd0;
|
||||||
jump_base <= reg_PC;
|
jump_base <= i_push_pc? reg_PC + {{17{1'b0}},(i_jump_length + 3'd1)} : reg_PC;
|
||||||
jump_decode <= 1'b1;
|
jump_decode <= 1'b1;
|
||||||
rstk_ptr_to_push_at <= (reg_rstk_ptr + 3'o1) & 3'o7;
|
rstk_ptr_to_push_at <= (reg_rstk_ptr + 3'o1) & 3'o7;
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue