import bitutilities as bu def input_handler(first_register: bu.BasicRegister, second_register: bu.BasicRegister): first_register, second_register = bu.align_registers(first_register, second_register) print() print(first_register) print(second_register) while True: print() match input("Choose the operation:\n[a]ddition, [s]ubtraction, [m]ultiplication, [d]ivision, [q]uit\n>>> "): case "a": print(f"Sum:\n{bu.binary_sum(first_register, second_register)}") case "s": print(f"Subtraction:\n{bu.binary_subtraction(first_register, second_register)}") case "m": match input("Choose method to use (1-4):\n>>> "): case "1": result, data_table = bu.binary_multiplication_method_1(first_register, second_register) print(f"Multiplication:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case "2": result, data_table = bu.binary_multiplication_method_2(first_register, second_register) print(f"Multiplication:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case "3": result, data_table = bu.binary_multiplication_method_3(first_register, second_register) print(f"Multiplication:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case "4": result, data_table = bu.binary_multiplication_method_4(first_register, second_register) print(f"Multiplication:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case _: print("Such method does not exist, try again.") case "d": match input("Choose method to use (1-2):\n>>> "): case "1": result, data_table = bu.binary_division_method_1(first_register, second_register) print(f"Division:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case "2": result, data_table = bu.binary_division_method_2(first_register, second_register) print(f"Division:\n{bu.format_device_state_table(data_table)}\nResult: {result}") case "q": exit() case _: print("Not an available operation, try again.") if __name__ == '__main__': reg: bu.BasicRegister = bu.BasicRegister(bu.get_memory("memory")) reg2: bu.BasicRegister = bu.BasicRegister(bu.get_memory("more memory")) input_handler(reg, reg2)