X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/6bd4619bee74d76a525f7def9ac56ffcf114a3f4..c279b66691509cfc4445a568dab29a3282f03f3f:/insn_alu_ext.v diff --git a/insn_alu_ext.v b/insn_alu_ext.v new file mode 100644 index 0000000..1b7825b --- /dev/null +++ b/insn_alu_ext.v @@ -0,0 +1,45 @@ +`ifdef EXECUTE + `INSN_ALU_EXT: begin + if ((opcode[2:0] == `INSN_reg_dHL) && (cycle == 0)) + `EXEC_READ(`_HL) + else begin + `EXEC_INC_PC + case (opcode[2:0]) + `INSN_reg_A: tmp <= `_A; + `INSN_reg_B: tmp <= `_B; + `INSN_reg_C: tmp <= `_C; + `INSN_reg_D: tmp <= `_D; + `INSN_reg_E: tmp <= `_E; + `INSN_reg_H: tmp <= `_H; + `INSN_reg_L: tmp <= `_L; + `INSN_reg_dHL: tmp <= rdata; + endcase + end + end +`endif + +`ifdef WRITEBACK + `INSN_ALU_EXT: begin + if (opcode[2:0] == `INSN_reg_dHL) begin + if(cycle == 0) begin end + else if(cycle == 1) begin + `EXEC_WRITE(`_HL, alu_res) + end else begin + `EXEC_NEWCYCLE + end + end else begin + case(opcode[2:0]) + `INSN_reg_B: `_B <= alu_res; + `INSN_reg_C: `_C <= alu_res; + `INSN_reg_D: `_D <= alu_res; + `INSN_reg_E: `_E <= alu_res; + `INSN_reg_H: `_H <= alu_res; + `INSN_reg_L: `_L <= alu_res; + `INSN_reg_A: `_A <= alu_res; + `INSN_reg_dHL: begin end /* eat dicks */ + endcase + `_F <= {f_res,`_F[3:0]}; + `EXEC_NEWCYCLE + end + end +`endif