#define reset h00000001 #define inhibit_i h00000002 #define alu_mode_0 h00000004 #define alu_mode_1 h00000008 #define alu_mode_2 h00000010 #define alu_mode_3 h00000020 #define m_alu_mode (alu_mode_0 + alu_mode_1 + alu_mode_2 + alu_mode_3) #define alu_add alu_mode_0 #define alu_inc (alu_mode_0 + alu_mode_3) #define alu_dec (alu_mode_0 + alu_mode_2) #define alu_sr (alu_mode_0 + alu_mode_2 + alu_mode_3) #define alu_not alu_mode_3 #define alu_and alu_mode_2 #define alu_or (alu_mode_2 + alu_mode_3) #define alu_xor alu_mode_1 #define alu_a_to_1 h00000040 #define alu_b_to_1 h00000080 #define alu_c_to_1 h00000100 #define alu_a_to_2 h00000200 #define alu_b_to_2 h00000400 #define alu_c_to_2 h00000800 #define m_alu_to_1 (alu_a_to_1 + alu_b_to_1 + alu_c_to_1) #define m_alu_to_2 (alu_a_to_2 + alu_b_to_2 + alu_c_to_2) #define ld8_0 h00001000 #define ld8_1 h00002000 #define ld8_2 h00004000 #define ld8_3 h00008000 #define m_ld8 (ld8_0 + ld8_1 + ld8_2 + ld8_3) #define sel8_0 h00010000 #define sel8_1 h00020000 #define sel8_2 h00040000 #define m_sel8 (sel8_0 + sel8_1 + sel8_2) #define ld16_0 h00080000 #define ld16_1 h80000000 #define ld16_2 h40000000 #define m_ld16 (ld16_0 + ld16_1 + ld16_2) #define sel16_0 h20000000 #define sel16_1 h10000000 #define sel16_2 h08000000 #define m_sel16 (sel16_0 + sel16_1 + sel16_2) #define bc_0 h04000000 #define bc_1 h02000000 #define bc_2 h01000000 #define m_bc (bc_0 + bc_1 + bc_2) #define dec h00200000 % #define xxx_bad_transistor_do_not_use_until_replaced h00100000 #define ld_a ld8_2 #define ld_b ld8_1 #define ld_c (ld8_1 + ld8_2) #define ld_i ld8_0 #define ld_lo_pc (ld8_0 + ld8_1 + ld8_3) #define ld_hi_pc (ld8_0 + ld8_1) #define ld_mem (ld8_0 + ld8_1 + ld8_2) #define ld_lo_xy (ld8_0 + ld8_1 + ld8_2 + ld8_3) #define sel_a sel8_2 #define sel_b sel8_1 #define sel_c sel8_0 #define sel_lo_pc (sel8_0 + sel8_1 + sel8_2) #define sel_hi_pc (sel8_0 + sel8_1) #define sel_mem (sel8_0 + sel8_2) #define sel_lo_xy (sel8_1 + sel8_2) #define ld_sp ld16_1 #define ld_pc ld16_2 #define ld_inc ld16_0 #define ld_j (ld16_0 + ld16_2) #define ld_c_pc (ld16_0 + ld16_1) #define ld_xy (ld16_0 + ld16_1 + ld16_2) #define sel_sp sel16_1 #define sel_pc sel16_2 #define sel_inc (sel16_1 + sel16_2) #define sel_j (sel16_0 + sel16_2) #define sel_j_pc (sel16_0 + sel16_1) #define sel_xy (sel16_0 + sel16_1 + sel16_2) #define bc_zero (bc_1) #define bc_carry (bc_2) #define bc_sign (bc_1 + bc_2) #define bc_not_zero (bc_0 + bc_1) #define bc_not_carry (bc_0 + bc_2) #define bc_not_sign (bc_0 + bc_1 + bc_2) #define bc_uncond 0 #define bc_load (bc_0)