X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/eb0f2fe1637a4c6b4532ae08ff7b0af3bf39aef0..3ad960bdb71efcbb1dfd436163085da0d70eb699:/insn_ldx_ahl.v diff --git a/insn_ldx_ahl.v b/insn_ldx_ahl.v new file mode 100644 index 0000000..a16d6ba --- /dev/null +++ b/insn_ldx_ahl.v @@ -0,0 +1,35 @@ +`ifdef EXECUTE + `INSN_LDx_AHL: begin + case (cycle) + 0: begin + address <= {registers[`REG_H],registers[`REG_L]}; + if (opcode[3]) begin // LDx A, (HL) + rd <= 1; + end else begin + wr <= 1; + wdata <= registers[`REG_A]; + end + end + 1: begin + `EXEC_NEWCYCLE; + `EXEC_INC_PC; + end + endcase + end +`endif + +`ifdef WRITEBACK + `INSN_LDx_AHL: begin + case (cycle) + 0: begin /* Type F */ end + 1: begin + if (opcode[3]) + registers[`REG_A] <= rdata; + {registers[`REG_H],registers[`REG_L]} <= + opcode[4] ? // if set, LDD, else LDI + ({registers[`REG_H],registers[`REG_L]} - 1) : + ({registers[`REG_H],registers[`REG_L]} + 1); + end + endcase + end +`endif