M/L THE MICROLEAGUE PROJECT
← Research overview

SOURCE DOCUMENT · 24 OCTOBER 2026

Initial validation checkpoint

# Validation record

Date: 2026-10-24. All tests run against newly written research code; no game binary or original Python application was executed.

## Results

Command: `python -B -m unittest discover -s reverse_engineering -p 'test_*.py' -v`

**21 tests passed.** No external Python packages are needed.

- All 65,536 unsigned 8×8 products checked, including low/high result bytes.
- Valid packed-BCD addition/subtraction checked across all 100 × 100 × 2 input/carry combinations for each operation.
- Every unsigned 16-bit input checked through binary-to-BCD and valid BCD decoding, including modulo-10,000 overflow.
- Signed Q8 division checked against an independently written restoring-division arithmetic transcription over 4,505 signed numerator/denominator combinations, including quotient-word wrap and signs.
- Every 256 × 256 bound/random-byte pair checked for the bounded-byte scaler, including bound-255 wrap.
- First-crossing, nonmonotone thresholds, byte accumulation, product-byte truncation, special combined actions and descending-table boundaries checked.
- ATR-linked record/header fixtures checked against original offsets; counts, opposing factors, pitcher-batting conversion and final threshold bytes checked against hand-decomposed expectations.
- Every instruction-index byte sequence checked against its ATR offset, including candidate rows.
- Every byte in all twelve emitted loading views checked for exact coverage, no gaps/overlaps within a view, and identity with original ATR bytes.
- All 18 protected original sources/reports/image hashes unchanged. All 1,400 original inventory entries remain present with unchanged size and modification time.

One test-development correction changed an independently chosen overflow-test operand from 65535 to 65534: `255 × 65535` has product byte 1 equal to 255, whereas `255 × 65534` has byte 1 equal to the intended 254. No game formula or original file was changed.

## Limits

These are static mathematical and evidence-integrity checks. The fixtures were not captured from a running Atari. They do not establish cycle timing, all CPU status flags, invalid BCD behavior, zero-divisor behavior, interrupts, effective pointer targets, final outcome distributions or the correctness of a complete engine emulator. The pure functions reproduce documented returned values/memory bytes only within their stated domains.

The signed-division reference is independent arithmetic derived from the same reviewed routine; agreement is useful consistency evidence, not an external emulator oracle. The tests are deliberately explicit about this distinction.

The generated listing is a reference artifact. A byte-coverage check does not prove every candidate CFG node is code. Only reviewed islands/closed arithmetic code are emitted as instructions; all remaining bytes stay data/uncertain. Runtime trace validation remains future work.