From b0b3373e30cbed97b0527f564feb621fb79f145d Mon Sep 17 00:00:00 2001 From: Raphael Jacquot Date: Sat, 9 Feb 2019 12:03:43 +0100 Subject: [PATCH] implement more versions of RTN --- opcodes/03_RTNCC.v | 19 --------------- opcodes/04_SETHEX.v | 15 ------------ opcodes/05_SETDEC.v | 16 ------------- opcodes/0x.v | 57 +++++++++++++++++++++++++++++++++++---------- 4 files changed, 45 insertions(+), 62 deletions(-) delete mode 100644 opcodes/03_RTNCC.v delete mode 100644 opcodes/04_SETHEX.v delete mode 100644 opcodes/05_SETDEC.v diff --git a/opcodes/03_RTNCC.v b/opcodes/03_RTNCC.v deleted file mode 100644 index 66ba18c..0000000 --- a/opcodes/03_RTNCC.v +++ /dev/null @@ -1,19 +0,0 @@ -/****************************************************************************** - * 03 RTNCC - * - * - */ - -`include "decstates.v" - -begin - Carry <= 0; - new_PC <= RSTK[rstk_ptr]; - RSTK[rstk_ptr] <= 0; - rstk_ptr <= rstk_ptr - 1; - next_cycle <= `BUSCMD_LOAD_PC; - decstate <= `DEC_START; -`ifdef SIM - $display("%05h RTNCC", inst_start_PC); -`endif -end diff --git a/opcodes/04_SETHEX.v b/opcodes/04_SETHEX.v deleted file mode 100644 index be9f7f5..0000000 --- a/opcodes/04_SETHEX.v +++ /dev/null @@ -1,15 +0,0 @@ -/****************************************************************************** - * 04 SETHEX - * - * - */ - -`include "decstates.v" - -begin - hex_dec <= `MODE_HEX; - decstate <= `DEC_START; -`ifdef SIM - $display("%05h SETHEX", inst_start_PC); -`endif -end diff --git a/opcodes/05_SETDEC.v b/opcodes/05_SETDEC.v deleted file mode 100644 index b5076ab..0000000 --- a/opcodes/05_SETDEC.v +++ /dev/null @@ -1,16 +0,0 @@ -/****************************************************************************** - * 05 SETDEC - * - * - */ - - -`include "decstates.v" - -begin - hex_dec <= `MODE_DEC; - decstate <= `DEC_START; -`ifdef SIM - $display("%05h SETDEC", inst_start_PC); -`endif -end diff --git a/opcodes/0x.v b/opcodes/0x.v index 2154dc2..3a73542 100644 --- a/opcodes/0x.v +++ b/opcodes/0x.v @@ -5,25 +5,58 @@ */ `DEC_0X: begin + + //generic RTN suff case (nibble) - // RTNSXM - 4'h0: begin - HST[0] <= 1; + 4'h0, 4'h1, 4'h2, 4'h3: begin new_PC <= RSTK[rstk_ptr]; RSTK[rstk_ptr] <= 0; rstk_ptr <= rstk_ptr - 1; next_cycle <= `BUSCMD_LOAD_PC; decstate <= `DEC_START; - `ifdef SIM - $display("%05h RTNSXM", inst_start_PC); - `endif end - 4'h3: -`include "opcodes/03_RTNCC.v" - 4'h4: -`include "opcodes/04_SETHEX.v" - 4'h5: -`include "opcodes/05_SETDEC.v" + default: begin end + endcase + + // things specific to the + case (nibble) + 4'h0: begin + HST[0] <= 1; + `ifdef SIM + $display("%05h RTNSXM", inst_start_PC); + `endif + end + 4'h1: begin + `ifdef SIM + $display("%05h RTN", inst_start_PC); + `endif + end + 4'h2: begin + Carry <= 1; + `ifdef SIM + $display("%05h RTNSC", inst_start_PC); + `endif + end + 4'h3: begin + Carry <= 0; + `ifdef SIM + $display("%05h RTNCC", inst_start_PC); + `endif + end + 4'h4: begin + hex_dec <= `MODE_HEX; + decstate <= `DEC_START; + `ifdef SIM + $display("%05h SETHEX", inst_start_PC); + `endif + end + 4'h5: begin + hex_dec <= `MODE_DEC; + decstate <= `DEC_START; + `ifdef SIM + $display("%05h SETDEC", inst_start_PC); + `endif + end default: begin $display("ERROR : DEC_0X"); decode_error <= 1;