Validates each of the nine 3×3 sub-grids for duplicate digits (1–9). Zero values are ignored. Uses bitmask duplicate detection identical to row and column validators.
Board base address: $A000 (81 bytes, row-major).
Cell value stored in low nibble (bits 0–3). High nibble reserved.
1. For each of 9 boxes, compute base offset: 0,3,6,27,30,33,54,57,60 (relative to $A000).
2. Clear 9-bit mask (stored in 16-bit register pair).
3. Iterate 3 rows × 3 columns within box:
• Read cell value.
• Mask low nibble.
• If zero, skip.
• Compute bit = 1 << (value-1).
• If bit already set → invalid.
• Else set bit and continue.
4. Within box traversal:
• Move +1 across columns.
• After 3 columns, add +6 to reach next box row (net +9 from row start).
5. If all boxes validated with no duplicates, return success.
HL → pointer into board.
DE → base address for current box.
BC → loop counters (box index and inner cell counter).
AF/alternate register set may be used for mask manipulation.
Z flag set on success.
NZ flag set if duplicate detected.