(Suggested by Anton) Convert the Breakpoints tab pane in the Options dialog so that it has 3 parts:
In the first part, the user specifies a program counter register. This part has already been implemented.
In the second part, there is a table. The user can add and delete rows to the table. For each row, the user specifies a register, a range of bits of the register, and a set of values. The same register could be listed more than once if you want to break on more than one range of bits in that register. After each microinstruction (not machine instruction?) when in debug mode, CPU Sim checks all registers in the table and breaks if any register’s range of bits has one of the given values. In that case, the given register is colored orange. The set of values is specified like in Word, (e.g., “1,3,5-7”) except decimal, binary (0b), and hex (0x) values are allowed. Or maybe the user could specify only, in each row, that she wants a break if the register has a value greater, smaller, or equal to a specified value and join the rows with ands and ors.
In the third part, there is a table. For each row, the user specifies a RAM, a set of addresses, and a set of values. After each micro(?) in debug mode, each RAM is checked to see if any of the addresses specified have any of the specified values. If so, the program breaks and the RAM cell is highlighted in orange.
(Suggested by Anton) Convert the Breakpoints tab pane in the Options dialog so that it has 3 parts: