PATCH Solution
STALE SUM
PATCH missing accumulator reset

Unlocks
seed=0
Accepted keysRESET8
Editable slots1
Rulenonzero
Walkthrough
The checksum walk and the stored total are both right, but the accumulator was never cleared: it starts full of leftover bytes, so the sum always runs high. Only the marked seed can move. Start the running sum from nothing, then TEST.
The stored total was computed as if the sum began at zero. A nonzero seed shifts the final sum by exactly that seed, so only a cleared accumulator can land on the stored total.
Valid Patch Combos
- seed=0
Reject Battery
- RESET9
- RXSET8
- QESET8
- RESET
- RESET88
Editable Slot Options
- seed: 0x5A, 0, 0x11, 0x80
Broken Listing
; STALE SUM: a PATCH job. The checksum walks every byte and compares the running
; sum against the stored total. The walk is correct and the total is correct, but
; the accumulator is seeded with leftover bytes from an earlier pass instead of
; being cleared, so the sum runs high by that seed and never matches. Only the
; marked seed (label "seed") is yours to edit; the loop, the stored total, and the
; verdict are frozen.
;
; The real key is RESET8. The stored total already assumes the sum began at zero,
; so any nonzero seed shifts the final sum by exactly that seed. Clear the
; accumulator so the walk starts from nothing.
;
; r0 = 1 on accept; rule: nonzero. SHIPPED seed is 0x5A, so the sum lands 0x5A
; high and the real key is bounced.
len r2
cmp r2, 6
jnz bad
seed: mov r3, 0x5A ; SHIPPED BROKEN: stale seed -> want 0
mov r7, 0
loop: cmp r7, 6
jge done
ldb r0, [r7]
add r3, r0
inc r7
jmp loop
done: cmp r3, 0xBB ; stored total of the six bytes, summed from zero
jnz bad
mov r0, 1
ret
bad: mov r0, 0
ret