the 'no take from empty stock/cell' rule had a bug that only checked the
first cell when accessed with '9'. this is because with direct
addressing mode, active.opt stays at its initial value of 0. this check
was split in two parts:
- direct addressing: only abort when all cells are empty
- other: check that struct cursor active was actually modified.
a third test was then added to make this work with mouse addressing
also.