{
  "schemaVersion": 1,
  "challenge": "tts-v1",
  "entryId": "claude-opus-5-5-run-1",
  "sourceSha256": "df1075befab937488f70923cd48cc1ebcc2c309a3a4ad4cc49c52666536d4c53",
  "metadata": {
    "schemaVersion": 1,
    "challenge": "tts-v1",
    "id": "claude-opus-5-5-run-1",
    "title": "Pulse-Reset Formant Voice: a 3RIC robot that reads aloud",
    "author": "Claude Opus 5.5 via GitHub Copilot, for ebadger",
    "model": "claude-opus-5.5 (Claude Opus 5.5) via GitHub Copilot; reasoning effort, temperature, seed and context tier unknown",
    "agent": "GitHub Copilot app coding agent in autopilot mode, isolated git worktree, normal shell/file/web tools (Node 22, emsdk-built WASM runtime, Python/numpy for offline spectrograms)",
    "baseline": "bd795bee12c5fb73a7de9e733e19e0aad95fb57c",
    "description": "Original English text-to-speech running entirely on the 65C02. About 420 original letter-to-sound rules (with left/right context classes, a small function-word/exception set and a suffix class) turn text into 44 phonemes with stress marks. A prosody pass expands them into 16-byte segments with durations, a declining pitch contour, stressed-syllable lengthening, phrase-final lengthening and question rises. The synthesizer runs at 6146 Hz (VIA T1, 256 cycles per sample): three decaying sine formant oscillators are restarted at every glottal pulse (pulse-reset formant synthesis), summed and played through AY volume registers 8/9 used as a two-register DAC on both AYs, with the AY noise generator on channel C for fricatives and bursts. Formants, levels and pitch glide between segments every frame. The text UI supports typing, delete, Ctrl-X, a 120-character limit, unsupported-key messages, Enter to speak and Escape to stop or exit via BRK.",
    "assistance": "Launched from ebadger's Copilot chat, which relayed the published kickoff task, operational details (baseline reset, entry ID, identity facts) and a later requirement to verify the entry in the live published Studio. No human or other model wrote code, pronunciation rules or voice data. Windows System.Speech dictation was used only offline as a disclosed intelligibility proxy on emulator captures; it generated no assets. The AY bus-write pattern follows the baseline groovebox.s helper.",
    "license": "MIT (the repository license) for all new source, rules, tables and generator. The AY register-write sequence is adapted from the repository's own codegen/programs/groovebox.s (MIT, same repository).",
    "memory": "Image $0800-$3EFF (code, tables, 4 KiB of sine level pages at $2F00, TTS_INPUT at $16DB, 256-byte word buffer at $1800). Work buffers: phoneme buffer $4000-$47FF, segment buffer $4800-$6FFF. Zero page $60-$9F is used by the engine and saved/restored by TTS_SPEAK (the UI also uses $60-$63 between calls). The UI draws text page 1 ($0400-$07FF) directly and sets CV/CH/BASL before BRK. No banking: $9000-$BFFF BASIC overlay and language card are never touched, so upper ROM stays visible. Both slot-4 VIAs: IER interrupts disabled, T1 of the left VIA free-runs only while speaking, then ACR is restored to 0 and flags cleared. IRQs are masked during sound; P is restored on return.",
    "limitations": "No human has listened to this entry; intelligibility is unverified by people. An offline Windows dictation proxy recognized only about 8-17% of words (12% for the submitted build) in the public/new sentences (it recognized about 90% of Windows' own voice and about 60% of that voice after a model of this DAC path), so the voice is robotic and sometimes hard to follow. Fricatives share one unshaped AY noise spectrum (S, SH, F, TH differ only by level, noise period and formant context). Rules are English best-effort; unusual words, names and heteronyms are often wrong; numbers are read digit by digit; abbreviations are not expanded. Not tested on physical 3RIC hardware, SD/ROM loading, or with a real Mockingboard; the timing and two-register DAC glitch model assume the emulator's AY bus behaviour."
  },
  "provenance": {
    "baseline": "bd795bee12c5fb73a7de9e733e19e0aad95fb57c",
    "gitRevision": "5e6960a6c82774ff53ea74291d6999e212b35221",
    "worktreeDirty": true
  },
  "createdAt": "2026-10-05T20:34:13.238Z",
  "ok": true,
  "status": "passed",
  "mode": "runtime",
  "scope": {
    "completeConformance": false,
    "automated": [
      "raw image load; exact caller-return breakpoint and stack balance",
      "bounded guest-call ABI, preserved strings, upper ROM mapping",
      "mixed stereo PCM activity and settled post-return silence"
    ],
    "manualUnverified": [
      "Intelligibility and pronunciation require human listening; non-speech tones can pass PCM checks.",
      "PCM is the mixed VM output; AY-only sound-source compliance is NOT established.",
      "Interactive typing/editing, input UI, and BRK return to a usable monitor are unverified.",
      "ROM/SD physical loading, bank initialization on the physical loader, and real hardware are unverified.",
      "Entrant metadata/provenance claims are self-reported, not independently verified."
    ],
    "entrantScriptsExecuted": false
  },
  "program": {
    "org": 2048,
    "bytes": 14080,
    "endExclusive": 16128,
    "symbols": {
      "TTS_INIT": 2051,
      "TTS_SPEAK": 2215,
      "TTS_INPUT": 5851
    }
  },
  "runtime": {
    "engine": "unmodified WASM via harness.boot",
    "clockHz": 1573437.5,
    "sampleRate": 48000,
    "channels": 2,
    "wavEncoding": "PCM16LE",
    "thresholds": {
      "speechAcRms": 0.0001,
      "speechPeak": 0.001,
      "minimumSpeechFrames": 48,
      "silenceRms": 0.0001,
      "silencePeak": 0.0005
    },
    "budgets": {
      "short": 3146875,
      "speech": 141609375,
      "cancellation": 1573437,
      "injectAfter": 78671,
      "batch": 8192,
      "settle": 393359,
      "silence": 236015
    },
    "testOverrides": false
  },
  "calls": [
    {
      "name": "init",
      "status": "passed",
      "routine": "TTS_INIT",
      "input": null,
      "expectedA": null,
      "cycles": 3124,
      "deadlineCycles": 3146875,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "3124 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 0.0019854617676266137,
      "audio": {
        "frames": 95,
        "seconds": 0.001979166666666667,
        "channels": [
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          },
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 165,
        "x": 0,
        "y": 4,
        "sp": 246,
        "status": 48,
        "waiting": false
      },
      "effectiveDeadlineCycles": 3146875,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            },
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "empty",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "",
      "expectedA": 0,
      "cycles": 2165,
      "deadlineCycles": 3146875,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "2165 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "no-speech-pcm",
          "ok": true,
          "detail": "empty/space-only/invalid calls must not emit an audible signal"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 0.0013759682224428998,
      "audio": {
        "frames": 66,
        "seconds": 0.001375,
        "channels": [
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          },
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 0,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 3146875,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            },
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "spaces",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "     ",
      "expectedA": 0,
      "cycles": 2500,
      "deadlineCycles": 3146875,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "2500 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "no-speech-pcm",
          "ok": true,
          "detail": "empty/space-only/invalid calls must not emit an audible signal"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 0.0015888778550148957,
      "audio": {
        "frames": 76,
        "seconds": 0.0015833333333333333,
        "channels": [
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          },
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 5,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 3146875,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            },
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "overlength-121",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "expectedA": 2,
      "cycles": 9443,
      "deadlineCycles": 3146875,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "9443 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=2; got 2"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "no-speech-pcm",
          "ok": true,
          "detail": "empty/space-only/invalid calls must not emit an audible signal"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 0.006001509433962264,
      "audio": {
        "frames": 288,
        "seconds": 0.006,
        "channels": [
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          },
          {
            "mean": 0,
            "peak": 0,
            "rms": 0,
            "acRms": 0
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 2,
        "x": 64,
        "y": 120,
        "sp": 246,
        "status": 48,
        "waiting": false
      },
      "effectiveDeadlineCycles": 3146875,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            },
            {
              "mean": 0,
              "peak": 0,
              "rms": 0,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "sentence-1-repeat-1",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "HELLO. THIS COMPUTER CAN TALK.",
      "expectedA": 0,
      "cycles": 5234945,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5234945 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.3270752730883815,
      "audio": {
        "frames": 159700,
        "seconds": 3.3270833333333334,
        "channels": [
          {
            "mean": 0.000014672131028655854,
            "peak": 0.13627301156520844,
            "rms": 0.015198445523430297,
            "acRms": 0.015198438441407378
          },
          {
            "mean": 0.000014680987079004596,
            "peak": 0.13151654601097107,
            "rms": 0.015177854903009765,
            "acRms": 0.015177847802815654
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.0000010412564961370663,
              "peak": 0.0000010412564961370663,
              "rms": 0.000001041256496137114,
              "acRms": 3.1521200601245646e-13
            },
            {
              "mean": -0.0000010879157343879342,
              "peak": 0.0000010879157343879342,
              "rms": 0.0000010879157343879342,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "sentence-2-repeat-1",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "WE MAKE NEW SOFTWARE FOR OLD COMPUTERS.",
      "expectedA": 0,
      "cycles": 5721510,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5721510 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.6363122144985103,
      "audio": {
        "frames": 174543,
        "seconds": 3.6363125,
        "channels": [
          {
            "mean": 0.000012027034694212872,
            "peak": 0.12150277942419052,
            "rms": 0.015411268100879304,
            "acRms": 0.015411263407898019
          },
          {
            "mean": 0.000011984390899286462,
            "peak": 0.13479629158973694,
            "rms": 0.015411029692901958,
            "acRms": 0.015411025033069039
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.0000021185931018408155,
              "peak": 0.0000021185931018408155,
              "rms": 0.0000021185931018409536,
              "acRms": 7.6474998690365e-13
            },
            {
              "mean": -0.000002596757212813827,
              "peak": 0.000002596757212813827,
              "rms": 0.0000025967572128137306,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "sentence-3-repeat-1",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.",
      "expectedA": 0,
      "cycles": 6128012,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "6128012 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.8946650248262165,
      "audio": {
        "frames": 186944,
        "seconds": 3.8946666666666667,
        "channels": [
          {
            "mean": 0.000010192519620159473,
            "peak": 0.10097328573465347,
            "rms": 0.016755876184645486,
            "acRms": 0.01675587308461465
          },
          {
            "mean": 0.00000971313245710884,
            "peak": 0.11385922878980637,
            "rms": 0.016766034761348244,
            "acRms": 0.01676603194777451
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.0000037116203657205915,
              "peak": 0.0000037116203657205915,
              "rms": 0.0000037116203657206876,
              "acRms": 8.440817057883974e-13
            },
            {
              "mean": -0.000004075115612067748,
              "peak": 0.000004075115612067748,
              "rms": 0.000004075115612068055,
              "acRms": 1.5824538089731339e-12
            }
          ]
        }
      }
    },
    {
      "name": "sentence-4-repeat-1",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "PLEASE TYPE A SENTENCE AND PRESS ENTER.",
      "expectedA": 0,
      "cycles": 5227131,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5227131 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.3221090764647467,
      "audio": {
        "frames": 159461,
        "seconds": 3.3221041666666666,
        "channels": [
          {
            "mean": 0.000009738409454998453,
            "peak": 0.12668882310390472,
            "rms": 0.01954165575808617,
            "acRms": 0.01954165333156137
          },
          {
            "mean": 0.0000091955758735771,
            "peak": 0.1272677630186081,
            "rms": 0.019536509285642743,
            "acRms": 0.019536507121524806
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000007431719950545812,
              "peak": 0.000007431719950545812,
              "rms": 0.0000074317199505457,
              "acRms": 0
            },
            {
              "mean": -0.000007980740519997198,
              "peak": 0.000007980740519997198,
              "rms": 0.000007980740519996712,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "sentence-1-repeat-2",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "HELLO. THIS COMPUTER CAN TALK.",
      "expectedA": 0,
      "cycles": 5234945,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5234945 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.3270752730883815,
      "audio": {
        "frames": 159700,
        "seconds": 3.3270833333333334,
        "channels": [
          {
            "mean": 0.0000071961011102200435,
            "peak": 0.1304386407136917,
            "rms": 0.015314664422746782,
            "acRms": 0.015314662732083748
          },
          {
            "mean": 0.000006665599109302535,
            "peak": 0.13043323159217834,
            "rms": 0.015302788769739254,
            "acRms": 0.015302787318036096
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000008492199413012713,
              "peak": 0.000008492199413012713,
              "rms": 0.000008492199413012459,
              "acRms": 0
            },
            {
              "mean": -0.000009063963261723984,
              "peak": 0.000009063963261723984,
              "rms": 0.000009063963261724557,
              "acRms": 3.219566283065955e-12
            }
          ]
        }
      }
    },
    {
      "name": "sentence-2-repeat-2",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "WE MAKE NEW SOFTWARE FOR OLD COMPUTERS.",
      "expectedA": 0,
      "cycles": 5721510,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5721510 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.6363122144985103,
      "audio": {
        "frames": 174543,
        "seconds": 3.6363125,
        "channels": [
          {
            "mean": 0.000004486981542439379,
            "peak": 0.12222693115472794,
            "rms": 0.01539658094327823,
            "acRms": 0.015396580289464118
          },
          {
            "mean": 0.000003976992846211626,
            "peak": 0.13508455455303192,
            "rms": 0.015398039808538877,
            "acRms": 0.015398039294951675
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.00001005409922072431,
              "peak": 0.00001005409922072431,
              "rms": 0.000010054099220723913,
              "acRms": 0
            },
            {
              "mean": -0.000010481040590093471,
              "peak": 0.000010481040590093471,
              "rms": 0.000010481040590093198,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "sentence-3-repeat-2",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.",
      "expectedA": 0,
      "cycles": 6128012,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "6128012 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.8946650248262165,
      "audio": {
        "frames": 186944,
        "seconds": 3.8946666666666667,
        "channels": [
          {
            "mean": 0.000002364685688040916,
            "peak": 0.09998350590467453,
            "rms": 0.01669166093722054,
            "acRms": 0.016691660769719584
          },
          {
            "mean": 0.0000020372754244292972,
            "peak": 0.10774820297956467,
            "rms": 0.016685988308667035,
            "acRms": 0.016685988184296483
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000011096831258328166,
              "peak": 0.000011096831258328166,
              "rms": 0.000011096831258327542,
              "acRms": 0
            },
            {
              "mean": -0.00001126351435232209,
              "peak": 0.00001126351435232209,
              "rms": 0.000011263514352322687,
              "acRms": 3.66276337753948e-12
            }
          ]
        }
      }
    },
    {
      "name": "sentence-4-repeat-2",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "PLEASE TYPE A SENTENCE AND PRESS ENTER.",
      "expectedA": 0,
      "cycles": 5227131,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5227131 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.3221090764647467,
      "audio": {
        "frames": 159461,
        "seconds": 3.3221041666666666,
        "channels": [
          {
            "mean": 0.0000025612747820674833,
            "peak": 0.13292346894741058,
            "rms": 0.019543630807215266,
            "acRms": 0.019543630639382362
          },
          {
            "mean": 0.0000029730337229563153,
            "peak": 0.12645883858203888,
            "rms": 0.01948698011685244,
            "acRms": 0.019486979890061793
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000014546823877026327,
              "peak": 0.000014546823877026327,
              "rms": 0.000014546823877027577,
              "acRms": 6.030762601710578e-12
            },
            {
              "mean": -0.00001397631876898231,
              "peak": 0.00001397631876898231,
              "rms": 0.000013976318768981256,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "lowercase",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "hello. this computer can talk.",
      "expectedA": 0,
      "cycles": 5235422,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5235422 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.327378430983118,
      "audio": {
        "frames": 159714,
        "seconds": 3.327375,
        "channels": [
          {
            "mean": 2.323568667977616e-7,
            "peak": 0.1338668167591095,
            "rms": 0.01535312707455329,
            "acRms": 0.015353127072795026
          },
          {
            "mean": 6.970939007684063e-7,
            "peak": 0.13128753006458282,
            "rms": 0.015284723714450789,
            "acRms": 0.015284723698554529
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000015543362678727135,
              "peak": 0.000015543362678727135,
              "rms": 0.00001554336267872674,
              "acRms": 0
            },
            {
              "mean": -0.000015078410797286779,
              "peak": 0.000015078410797286779,
              "rms": 0.000015078410797285535,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "maximum-120",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "HELLO. THIS COMPUTER CAN TALK. HELLO. THIS COMPUTER CAN TALK. HELLO. THIS COMPUTER CAN TALK. HELLO. THIS COMPUTER CAN TA",
      "expectedA": 0,
      "cycles": 19524367,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "19524367 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 12.408733743793446,
      "audio": {
        "frames": 595619,
        "seconds": 12.408729166666667,
        "channels": [
          {
            "mean": -0.000013705129516502193,
            "peak": 0.13540640473365784,
            "rms": 0.015267665383093711,
            "acRms": 0.015267659231838487
          },
          {
            "mean": -0.00001317076501825434,
            "peak": 0.13413281738758087,
            "rms": 0.015268177261533173,
            "acRms": 0.015268171580793407
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7201,
          "seconds": 0.15002083333333333,
          "channels": [
            {
              "mean": -0.000019727109247469343,
              "peak": 0.000019727109247469343,
              "rms": 0.000019727109247469818,
              "acRms": 4.326079213215154e-12
            },
            {
              "mean": -0.000019226266886107624,
              "peak": 0.000019226266886107624,
              "rms": 0.00001922626688610606,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "escape-cancellation",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG. THE QUICK BROWN FOX JUMPS OVER",
      "expectedA": 1,
      "cycles": 80341,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": 78671,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "80341 cycles"
        },
        {
          "name": "escape-injected-while-running",
          "ok": true,
          "detail": "Escape at cycle 78671"
        },
        {
          "name": "cancellation-deadline",
          "ok": true,
          "detail": "1670 cycles after Escape (limit 1573437)"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=1; got 1"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 0.0510608142999007,
      "audio": {
        "frames": 2450,
        "seconds": 0.051041666666666666,
        "channels": [
          {
            "mean": -0.000019727109247469343,
            "peak": 0.000019727109247469343,
            "rms": 0.000019727109247469767,
            "acRms": 4.080074733093707e-12
          },
          {
            "mean": -0.000019226266886107624,
            "peak": 0.000019226266886107624,
            "rms": 0.000019226266886107624,
            "acRms": 0
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 1,
        "x": 64,
        "y": 1,
        "sp": 246,
        "status": 48,
        "waiting": false
      },
      "effectiveDeadlineCycles": 1652108,
      "cancellationCycles": 1670,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.000019727109247469343,
              "peak": 0.000019727109247469343,
              "rms": 0.000019727109247469818,
              "acRms": 4.326079213215154e-12
            },
            {
              "mean": -0.000019226266886107624,
              "peak": 0.000019226266886107624,
              "rms": 0.00001922626688610606,
              "acRms": 0
            }
          ]
        }
      }
    },
    {
      "name": "after-cancellation",
      "status": "passed",
      "routine": "TTS_SPEAK",
      "input": "WE MAKE NEW SOFTWARE FOR OLD COMPUTERS.",
      "expectedA": 0,
      "cycles": 5721510,
      "deadlineCycles": 141609375,
      "returned": true,
      "escapeInjectedAtCycle": null,
      "serial": "",
      "serialBytes": 0,
      "checks": [
        {
          "name": "returned-before-deadline",
          "ok": true,
          "detail": "5721510 cycles"
        },
        {
          "name": "balanced-stack",
          "ok": true,
          "detail": "SP 246 -> 246"
        },
        {
          "name": "return-code",
          "ok": true,
          "detail": "expected A=0; got 0"
        },
        {
          "name": "upper-rom-visible",
          "ok": true,
          "detail": "compare $D000/$E000/$F000/$FFFF read mappings with boot ROM mappings"
        },
        {
          "name": "caller-preserved",
          "ok": true,
          "detail": "$0300..$031F is reserved"
        },
        {
          "name": "input-preserved",
          "ok": true,
          "detail": "all supplied bytes including NUL must remain unchanged"
        },
        {
          "name": "pcm-activity",
          "ok": true,
          "detail": "mixed PCM activity only; not intelligibility or AY-only proof"
        },
        {
          "name": "post-return-silence",
          "ok": true,
          "detail": "measured after DC settling; caller spins without muting hardware"
        }
      ],
      "seconds": 3.6363122144985103,
      "audio": {
        "frames": 174543,
        "seconds": 3.6363125,
        "channels": [
          {
            "mean": -0.00000679141612013005,
            "peak": 0.1222543716430664,
            "rms": 0.015428721312985116,
            "acRms": 0.015428719818261924
          },
          {
            "mean": -0.000006206685579546559,
            "peak": 0.12258081883192062,
            "rms": 0.015450177986997318,
            "acRms": 0.015450176740314353
          }
        ]
      },
      "registers": {
        "pc": 776,
        "a": 0,
        "x": 64,
        "y": 4,
        "sp": 246,
        "status": 50,
        "waiting": false
      },
      "effectiveDeadlineCycles": 141609375,
      "postReturn": {
        "settleCycles": 393360,
        "measuredCycles": 236016,
        "audio": {
          "frames": 7200,
          "seconds": 0.15,
          "channels": [
            {
              "mean": -0.00002175428562622983,
              "peak": 0.00002175428562622983,
              "rms": 0.000021754285626228658,
              "acRms": 0
            },
            {
              "mean": -0.00002097898322972469,
              "peak": 0.00002097898322972469,
              "rms": 0.00002097898322972414,
              "acRms": 0
            }
          ]
        }
      }
    }
  ],
  "errors": [],
  "artifacts": [
    {
      "file": "tts.prg",
      "kind": "program"
    },
    {
      "file": "sentence-1.wav",
      "kind": "audio",
      "text": "HELLO. THIS COMPUTER CAN TALK."
    },
    {
      "file": "sentence-2.wav",
      "kind": "audio",
      "text": "WE MAKE NEW SOFTWARE FOR OLD COMPUTERS."
    },
    {
      "file": "sentence-3.wav",
      "kind": "audio",
      "text": "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG."
    },
    {
      "file": "sentence-4.wav",
      "kind": "audio",
      "text": "PLEASE TYPE A SENTENCE AND PRESS ENTER."
    }
  ]
}
