TEST 08: Register insns
TEST 09: BC/DE/HL arith
-09 (ADD HL, BC)
-19 (ADD HL, DE)
TEST 10: SP/HL instructions
-39 (ADD HL, SP)
-E8 01 (ADD SP, 1)
-E8 FF (ADD SP, -1)
-F8 01 (LD HL, SP+1)
-F8 FF (LD HL, SP-1)
\ No newline at end of file
1: begin
`_F <= { /* Z */ `_F[7],
/* N */ 1'b0,
- /* H */ (({`_HL} + {tmp,tmp2}) & 16'h1000) ? 1'b1 : 1'b0,
+ /* H */ (({1'b0,`_H[3:0],`_L} + {1'b0,tmp[3:0],tmp2}) & 13'h1000) ? 1'b1 : 1'b0,
/* C */ (({1'b0,`_HL} + {1'b0,tmp,tmp2}) & 17'h10000) ? 1'b1 : 1'b0,
`_F[3:0]
};
`ifdef WRITEBACK
`INSN_ADD_SP_IMM8: begin
case (cycle)
- 2: `_SP <= `_SP + {rdata[7] ? 8'hFF : 8'h00, rdata};
+ 2: begin
+ `_SP <= `_SP + {rdata[7] ? 8'hFF : 8'h00, rdata};
+ `_F <= {
+ 2'b00,
+ (({1'b0,`_SPL[3:0]} + {1'b0,rdata[3:0]}) & 5'h10) ? 1'b1 : 1'b0,
+ (({1'b0,`_SPL} + {1'b0,rdata}) & 9'h100) ? 1'b1 : 1'b0,
+ `_F[3:0]
+ };
+ end
endcase
end
`endif
`ifdef WRITEBACK
`INSN_LDHL_SP_IMM8: begin
case (cycle)
- 2: `_HL <= `_SP + {rdata[7] ? 8'hFF : 8'h00, rdata};
+ 2: begin
+ `_HL <= `_SP + {rdata[7] ? 8'hFF : 8'h00, rdata};
+ `_F <= {
+ 2'b00,
+ (({1'b0,`_SPL[3:0]} + {1'b0,rdata[3:0]}) & 5'h10) ? 1'b1 : 1'b0,
+ (({1'b0,`_SPL} + {1'b0,rdata}) & 9'h100) ? 1'b1 : 1'b0,
+ `_F[3:0]
+ };
+ end
endcase
end
`endif