1 `define INSN_alu_RLCA 3'b000
2 `define INSN_alu_RRCA 3'b001
3 `define INSN_alu_RLA 3'b010
4 `define INSN_alu_RRA 3'b011
5 `define INSN_alu_DAA 3'b100
6 `define INSN_alu_CPL 3'b101
7 `define INSN_alu_SCF 3'b110
8 `define INSN_alu_CCF 3'b111
10 `define INSN_ALU_A 9'b000xxx111
23 `_A <= {`_A[6:0],`_A[7]};
24 `_F <= {`_F[7:5],`_A[7],`_F[3:0]};
27 `_A <= {`_A[0],`_A[7:1]};
28 `_F <= {`_F[7:5],`_A[0],`_F[3:0]};
31 `_A <= {`_A[6:0],`_F[4]};
32 `_F <= {`_F[7:5],`_A[7],`_F[3:0]};
35 `_A <= {`_F[4],`_A[7:1]};
36 `_F <= {`_F[7:5],`_A[0],`_F[3:0]};
41 if(`_A[3:0] >= 4'h6 && `_A[7:4] >= 4'h6 && `_F[5]) begin
43 `_F <= {((`_A + 8'h9A) == 8'b0), `_F[6:0]};
47 `_F <= {((`_A + 8'hA0) == 8'b0), `_F[6:0]};
51 if(`_A[3:0] <= 4'h9 && `_A[7:4] <= 4'h9 && !`_F[5]) begin
52 `_F <= {(`_A == 8'b0), `_F[6:0]};
56 `_F <= {((`_A + 8'hFA) == 8'b0), `_F[6:0]};
64 `_F <= {((`_A + 8'h66) == 8'b0), `_F[6:0]};
66 else if (`_A[3:0] > 4'h9) begin
68 `_F <= {((`_A + 8'h66) == 8'b0), `_F[6:0]};
72 `_F <= {((`_A + 8'h60) == 8'b0), `_F[6:0]};
77 if(`_A[7:4] > 4'h9) begin
79 `_F <= {((`_A + 8'h66) == 8'b0), `_F[6:5], 1'b1, `_F[3:0]};
83 `_F <= {((`_A + 8'h06) == 8'b0), `_F[6:0]};
87 if(`_A[3:0] > 4'h9) begin
88 if (`_A[7:4] > 4'h8) begin
90 `_F <= {((`_A + 8'h66) == 8'b0), `_F[6:5], 1'b1, `_F[3:0]};
94 `_F <= {((`_A + 8'h06) == 8'b0), `_F[6:0]};
98 if (`_A[7:4] > 4'h9) begin
100 `_F <= {((`_A + 8'h66) == 8'b0), `_F[6:5], 1'b1, `_F[3:0]};
103 `_F <= {(`_A == 8'b0), `_F[6:0]};
112 `_F <= {`_F[7],1'b1,1'b1,`_F[4:0]};
115 `_F <= {`_F[7:5],1'b1,`_F[3:0]};
118 `_F <= {`_F[7:5],~`_F[4],`_F[3:0]};