<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Barely Booting Build Log</title>
    <link>https://barelybooting.com/log.html</link>
    <description>Build log for the NetISA project. Open-source WiFi and TLS 1.3 for vintage ISA PCs.</description>
    <language>en-us</language>
    <lastBuildDate>Sat, 02 May 2026 18:00:00 +0000</lastBuildDate>
    <atom:link href="https://barelybooting.com/feed.xml" rel="self" type="application/rss+xml"/>

    <item>
      <title>HEARO v1.5.1</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-02-hearo-v1-5-1</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-02-hearo-v1-5-1</guid>
      <pubDate>Sat, 02 May 2026 18:00:00 +0000</pubDate>
      <description>Tagged at v1.5.1. Same-day patch release that closes out the three deferred follow-ups from v1.5.0&apos;s release notes. The LHA piece is the meaningful chunk: almost every YM file in the wild ships -lh5- compressed (8 KB sliding-window LZSS with static Huffman codes), so v1.5.0&apos;s YM3-only loader effectively meant no real YM files play. v1.5.1 implements the LHA level-0/1 header parser plus the LH5 algorithm from scratch (~370 LOC, MIT-clean, read from the Yoshizaki LHA spec). On top of that, the AY loader picks up YM5 / YM6 stream support: richer header, 16 registers per frame versus YM3&apos;s 14, with column-major OR row-major layout depending on the A_STREAMINTERLEAVED attr bit. Two new wav-matrix cells (LH0 stored, LH5 literal-only) pass deterministic on 86Box; the LH5 LZ back-reference path is verified end-to-end by a Python port of the C decoder against an ABABA round-trip fixture. FX:N counter coverage extended from STM/FAR/ULT to MOD/S3M/XM/IT/MTM/669, surfacing tone porta + vibrato + tremolo + arpeggio + note-delay where each engine actually pumps them; XM and 669 stay honest about their MVP scope. Tone-portamento-without-instrument fallback fixtures (FXSTM5 / FXFAR5 / FXULT6) added to the wav-matrix. 33 cells PASS deterministic (was 30); HEARO.EXE 231 KB -&gt; 235 KB. Real-iron validation on 486 DX-2 + Vibra 16S remains the v1.6 gate.</description>
    </item>

    <item>
      <title>HEARO v1.5.0</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-02-hearo-v1-5-0</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-02-hearo-v1-5-0</guid>
      <pubDate>Sat, 02 May 2026 16:00:00 +0000</pubDate>
      <description>Tagged at v1.5.0. Six new decoders (CMF, HSC, STM, RAD v1, FAR, ULT), an AY-3-8910 / YM3 chip-music player with streaming synth, full per-tick effects pump on STM / FAR / ULT covering sequencer control, volume slides, pitch slides, tone portamento, vibrato, tremolo, sample offset, and arpeggio, an animated splash intro with OPL2 fanfare, four phases of UI catch-up, three new themes (Borland Blue, Norton Commander, Tokyo Night) bringing the total to 9 + user-defined, a 320CDT YMF715 research dossier with documented SETYMF workaround plus staged native EEPROMless wake path, and HEARO_AUTOPLAY env var. Pre-release quality gate ran three rounds across five chunks and caught 22 issues (3 Critical + 19 Important) before tag. The Criticals would have shipped silently: whisper_check clobbered the wake hint before first frame, intro reveal flashed the full logo on its first 4 frames due to u8 underflow, and --no-intro cmdline opt-out parsed under the wrong key. 30/30 wav-matrix cells PASS deterministic post-fix. Real-iron validation on 486 DX-2 + Vibra 16S is the next gate.</description>
    </item>

    <item>
      <title>HEARO: UI audit closes the loop on Phase 1-4 wiring</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-02-hearo-ui-dialed-in</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-02-hearo-ui-dialed-in</guid>
      <pubDate>Sat, 02 May 2026 12:00:00 +0000</pubDate>
      <description>Pass over everything we shipped post-v1.4 to make sure it has a UI surface and the surface is wired right. Two gaps found and fixed: (1) The 320CDT wake hint was using printf which would scroll text into HEARO's text-mode boot screen and get clobbered by the first UI redraw; new flow routes through the whisper system so it shows in the bottom status bar, with audio/ -> unlock/ layering kept clean via a const-pointer slot exposed by the wake registry. (2) No surface for active effects; format badge brightened for "tracker with effects supported" but didn't show whether they were firing right now. Added per-format active_fx helpers and a decode_active_effect_count dispatcher; now-playing badge widens from [STM] to [STM FX:3] in bright green when effects are firing. HEARO_AUTOPLAY=path env var lets one-line BAT launches start a track immediately and gives the screenshot harness a deterministic playing state. DGROUP gotcha caught and fixed when the initial wake-hint buffer tipped DGROUP over 64K. Verified visually with three screenshots showing all four status indicators stacked, the new Tokyo Night theme applied, and the FX:N counter live.</description>
    </item>

    <item>
      <title>HEARO: sample offset + arpeggio on STM / ULT</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-offset-arp</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-offset-arp</guid>
      <pubDate>Fri, 01 May 2026 23:45:00 +0000</pubDate>
      <description>Two more per-effect bolt-ons on the post-v1.4 trackers. Sample offset (STM Oxx, ULT 9xx): when a row triggers a sample with this effect, jump param*256 frames into the sample data instead of starting from byte 0 -- this is how almost every drum loop in the corpus slices breakbeats. Mixer's own mixer_set_position seek helper made wiring one line per format. Arpeggio (STM Jxx): the param's xy nibbles are semitone offsets cycled per tick (tick 0 = base, tick 1 = base+x, tick 2 = base+y, repeat). Implemented via the existing hearo_arp_freq_mul Q16 multiplier table; per-tick the carrier frequency multiplies before vibrato is added on top, so arp + vibrato + slides all compose. Two new fixtures (FXSTM4, FXULT5); wav-matrix grew from 28 to 30 cells, all PASS deterministic.</description>
    </item>

    <item>
      <title>HEARO: tone portamento + vibrato + tremolo on STM / FAR / ULT</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-tone-vibrato</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-tone-vibrato</guid>
      <pubDate>Fri, 01 May 2026 23:30:00 +0000</pubDate>
      <description>The next layer of musical expression landed on the post-v1.4 trackers. Tone portamento on all three (STM Gxx, FAR 3xx, ULT 3xx): a fresh note becomes a slide TARGET rather than a re-trigger, so the playing sample keeps its position and just shifts pitch. Slide rate memorized across rows. Vibrato on all three (STM Hxx, FAR 5xx/8xx, ULT 4xx): xy speed/depth, Q8 sine modulates carrier without persisting so vibrato + slide combos work without detuning. Tremolo on ULT (7xx): same shape, applied to volume. Per-channel state grew by 5 fields; carrier vs modulation split keeps the slide machinery walking the underlying freq with vibrato added on top in process_tick. Three new fixtures (FXSTM3, FXULT4, FXFAR4); wav-matrix grew from 25 to 28 cells, all PASS deterministic with no regressions to the 25 prior baselines. Sample-offset, retrigger, fine slides, and arpeggio remain per-effect bolt-ons.</description>
    </item>

    <item>
      <title>HEARO: animated splash intro before the boot screen</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-intro-splash</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-intro-splash</guid>
      <pubDate>Fri, 01 May 2026 23:00:00 +0000</pubDate>
      <description>HEARO now plays a brief animated intro before its boot screen, in the spirit of the Apogee / Sierra studio splashes. Four phases in roughly 3.5 seconds: column-by-column logo reveal with CGA-snow flicker behind the wavefront; three-note OPL2 ascending arpeggio (C5/G5/C6) keying on through the reveal; one-second hold with a "NetISA Music Player" subtitle; vsync-gated palette fade to black across ten steps. Any keypress skips. --no-intro / HEARO_INTRO=off / --safe opt out so first-time diagnostics aren't gated behind theatre. Hardware with no OPL chip still gets the visual silently. Implementation is text-mode CP437 + INT 10h palette helpers, ~250 lines in src/ui/intro.c.</description>
    </item>

    <item>
      <title>HEARO: UI catch-up after the post-v1.4 feature blitz</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-ui-catchup</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-ui-catchup</guid>
      <pubDate>Fri, 01 May 2026 22:00:00 +0000</pubDate>
      <description>Four UI passes brought the surface back in line with the engine. Phase 1 visibility added live indicators to the status bar (EQ on/off, reverb preset name, stereo separation mode, current visualizer) and a format badge in the now-playing pane that brightens when a tracker's effect column is active. Phase 2 promoted env-var features into the UI: the stereo-separation knob was previously HEARO_SEPARATION=narrow only; now it's at Settings -> Stereo mode with a live picker. Phase 3 tightened discoverability: boot screen got a "Try: Alt-S Settings, V cycles visualizers, F2 Unlock matrix" tip line; browser empty state and now-playing stopped state both got actionable next-step prompts. Phase 4 added three curated themes: Borland Blue (Turbo Pascal IDE), Norton Commander (file-manager cyan-on-blue), Tokyo Night (modern dark purple). Total built-in palettes is now 9.</description>
    </item>

    <item>
      <title>HEARO: per-tick effects pump on STM / FAR / ULT plus AY shape regression</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-effects-pump</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-effects-pump</guid>
      <pubDate>Fri, 01 May 2026 18:00:00 +0000</pubDate>
      <description>Effect coverage on STM, FAR, ULT expanded into a full per-tick pump. STM picked up Dxx (volume slide) and Exx/Fxx (pitch slides). FAR picked up Dxx/Exx (fine tempo deltas) and 6xx/7xx (volume slide up/down) -- FAR's effect parameter is 4 bits so slides are necessarily small. ULT picked up 1xx/2xx (portamento up/down via MOD-style cmd numbering), Axx (volume slide), and Cxx (set volume) on either effect column. The architectural piece is a process_tick() per format running on every non-row tick. ULT cells widened to 7 bytes to carry both effect columns natively. The wav-matrix grew from 19 to 25 cells: FXULT2 (Cxx), FXFAR2 (D/E fine tempo), FXSTM2 (slides), FXFAR3 (vol slides), FXULT3 (slides), and AYSHAPES which cycles all 8 functional AY envelope shapes (AYFULL only hits 0x0A). 25/25 PASS deterministic. Tone portamento, vibrato, tremolo deferred -- they need memorized per-channel target state.</description>
    </item>

    <item>
      <title>HEARO: STM, FAR, ULT sequencer-control effects</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-stm-far-ult-effects</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-stm-far-ult-effects</guid>
      <pubDate>Fri, 01 May 2026 12:00:00 +0000</pubDate>
      <description>Three of the post-v1.4 trackers got their first effects pass. STM honors Axx (set speed), Bxx (position jump), and Cxx (pattern break). FAR honors Fxx (set tempo); FAR has no position-jump or pattern-break effects in its set, so song flow goes through the order-list restart_pos field. ULT honors Bxx, Dxx (pattern break), and Fxx via the first effect column. STM and ULT cells widened from 4 to 5 bytes to carry both the effect command and parameter; FAR was unchanged because its 4-bit parameter already packs cmd<<4 | param into one byte. Each format gets a new wav-matrix cell (FXSTM / FXFAR / FXULT) exercising the new code paths against fresh baselines, while the original effect-less TONE.* fixtures still hash to their original baselines, which is what made the cell-layout refactor safe to land. Volume slides and pitch effects deferred -- they need a per-tick state machine that v1.x doesn't yet have.</description>
    </item>

    <item>
      <title>HEARO: six new decoders, AY chip music, audio regression with peak floor</title>
      <link>https://barelybooting.com/log.html#entry-2026-05-01-hearo-decoders-ay-streaming</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-05-01-hearo-decoders-ay-streaming</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <description>Six new decoders shipped on top of v1.4: CMF (Creative Music File), HSC (HSC AdLib Composer), STM (Scream Tracker 2), RAD v1 (Reality AdLib Tracker), FAR (Farandole Composer, 16-channel PCM), ULT (UltraTracker V004). Plus an AY-3-8910 / YM3 register-stream player covering the ZX Spectrum 128 / Amstrad CPC / Atari ST corpus, with full noise + envelope generators and a streaming synth that lifts the v1 ~2.97-second pre-render cap. Total decoder count is 16. Each format ships with an end-to-end audio regression: 86Box-VM /W render, SHA1 hash against per-cell baselines, with a peak-amplitude floor that catches the regression class where a baseline regenerated against silence still hashes deterministically. Drive-by cleanup: shared tracker tables (vibrato sine, arpeggio Q16) consolidated to single defs in decode.c; per-TU duplication and W202 noise gone. LHA-packed YM5 is the next AY follow-up.</description>
    </item>

    <item>
      <title>HEARO v1.3.0: engine fidelity, visualizers, metadata</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-28-hearo-v1-3-0</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-28-hearo-v1-3-0</guid>
      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
      <description>HEARO v1.3.0 tagged. Demoscene-polish milestone: XM volume + pan envelopes; IT volume + pan + pitch envelopes; IT lowpass filter (Z40-Z7F, rate-independent cutoff); IT NNAs (Cut/Continue/Off/Fade-as-Off) via ghost-voice pool; VU meter + frequency-bars visualizer modes (V cycles); real now-playing metadata (WAV LIST/INFO sub-chunks, MIDI track-0 sequence-name, VGM GD3 tag block). Same-day v1.0 hardening pass closing 12 review findings + 5 auplay-inspired SB/DMA improvements. Three rounds of iterative code review closed clean (5 to 1 to 0 Critical+Important). DOSBox-X SB16 sentinels match (WAV 67584 / MOD 90112 / XM 67584).</description>
    </item>

    <item>
      <title>Prior-art writeup: where NetISA fits in the TLS-on-vintage landscape</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-prior-art</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-prior-art</guid>
      <pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate>
      <description>New "Why a coprocessor" section on the NetISA site page; matching README block with project links (PicoMEM, PicoGUS, Graphics Gremlin, PicoPCMCIA, SEthernet/30, Crypto Ancienne, WinGPT, AmiSSL, Secure Oldies, mTCP, DOStodon, MicroWeb); architecture spec gains §1.3 "Prior Art and the TLS Floor" with technical detail (WolfSSL Win16 segment-limit work, mbed TLS NT 3.51 entropy compromise, Crypto Ancienne's 20-second handshake on a 25 MHz 68030, ECDHE/P-256 math on an 8088, EdDSA cert-buffer size). Appendix A extended to match. Em-dashes swept from the rest of the spec.</description>
    </item>

    <item>
      <title>TAKEOVER v1.2.1: bug-fix release</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-takeover-v1-2-1</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-takeover-v1-2-1</guid>
      <pubDate>Sat, 25 Apr 2026 23:00:00 +0000</pubDate>
      <description>Same-day patch on v1.2. Three fixes: (1) IS_KEY_ESC and IS_KEY_ENTER helpers replace scattered dual-encoding checks across engine.c, cracktro.c, menu.c. (2) The F9/F10 audio status flash no longer leaks a Space press into the outer scenario delay. (3) engine_reset clears g_skip_delay for symmetry. v1.2 saves and .scn files unchanged; drop-in. Binary 63,068 bytes (v1.2 was 63,050).</description>
    </item>

    <item>
      <title>TAKEOVER v1.2: robustness and UX polish</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-takeover-v1-2</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-takeover-v1-2</guid>
      <pubDate>Sat, 25 Apr 2026 22:00:00 +0000</pubDate>
      <description>Headline fix: Esc now exits any running scenario. Before this release scenarios had no abort path and a stuck run required a reboot. Other fixes: engine no longer eats keys during delays, F9/F10 work mid-scenario, climax drains held keys on early exit, parser errors include filename + line. Additions: Space skips delays / typing animations, F1 brings up a key reference overlay, F9/F10 mute states persist (TAKEOVER.DAT bumped to schema v2). Binary 63,050 bytes (was 60,492). v1.1 saves load fine; .scn format unchanged.</description>
    </item>

    <item>
      <title>CATHODE, DISCORD, and CLAUDE get their own project pages</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-cathode-discord-claude-pages</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-cathode-discord-claude-pages</guid>
      <pubDate>Sat, 25 Apr 2026 21:00:00 +0000</pubDate>
      <description>Three new dedicated pages on barelybooting.com: cathode.html, discord.html, claude.html. Same template as cerberus.html and hearo.html: hero figure, status, features, source layout, build instructions, hardware specs, suite context, out-of-scope, links. Site nav updated across all 12 HTML files; sitemap and the index page intro paragraph and links list updated to point at the new pages.</description>
    </item>

    <item>
      <title>CATHODE, DISCORD, and CLAUDE migrate to the suite-app pattern</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-suite-migration</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-suite-migration</guid>
      <pubDate>Sat, 25 Apr 2026 20:00:00 +0000</pubDate>
      <description>All three older DOS apps move from dos/cathode/, dos/discord/, dos/claude/ to top-level cathode/, discord/, claude/. Each gets the suite-app shape: src/, Makefile, README, .gitignore, scripts/. Shared platform code now lives at /lib/. Build sizes unchanged: CATHODE.EXE 40 KB, DISCORD.EXE 37 KB, CLAUDE.EXE 30 KB. dos/ is now just the TSR and launcher. Captures saved for all three.</description>
    </item>

    <item>
      <title>HEARO + CHIME tagged v1.0.0</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-hearo-chime-v100-tag</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-hearo-chime-v100-tag</guid>
      <pubDate>Sat, 25 Apr 2026 18:00:00 +0000</pubDate>
      <description>v1.0.0 tag. Detection fixes from the v1.0 captures: SB Pro 2 OPL3 check (was checking wrong port), SB16 ASP false positive (replaced mixer-index probe with DSP cmd 04h), GUS phantom at SB base (require ULTRASND, refuse SB-base collision), cpu_pit_loop calibration. CHIME mode captures for /DRYRUN and /HELP.</description>
    </item>

    <item>
      <title>HEARO and CHIME compile clean. First screenshots.</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-25-hearo-chime-first-compile</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-25-hearo-chime-first-compile</guid>
      <pubDate>Sat, 25 Apr 2026 16:00:00 +0000</pubDate>
      <description>Open Watcom V2 installed. First wmake on HEARO and CHIME surfaced the expected handful of issues, all fixed in one sweep. Both binaries build clean and run under DOSBox-X. Boot screen captured. DGROUP overflow fixed with -zc. bipartite_sin overflow + residual-table bug fixed with linear interpolation, now ~13 bits sin precision. HEARO_NOASM scope narrowed: display + DOS calls always use the real Watcom path now, only the inline-asm probes stay gated. TESTCORD, TESTBIP, TESTQUIR, TESTDET, HEARO /VERSION and /UNLOCKS, and CHIME TESTTIME (21/21) all pass. Screenshots reproduce deterministically against synthetic-stub backends.</description>
    </item>

    <item>
      <title>CHIME: foundation phase done</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-24-chime-foundation</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-24-chime-foundation</guid>
      <pubDate>Fri, 24 Apr 2026 23:00:00 +0000</pubDate>
      <description>Second NetISA suite app out of design phase, landed the same day as HEARO. Asks the network for the current time, sets the DOS clock. v1.0 uses HTTPS HEAD and parses the RFC 7231 Date header. Sets DOS via INT 21h with a direct CMOS RTC write-through. SNTP and NTS over UDP land in v1.1/v1.2 once NetISA exposes UDP. 18 source files in chime/. Not compiled yet; Open Watcom V2 not installed.</description>
    </item>

    <item>
      <title>HEARO: foundation phase done</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-24-hearo-foundation</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-24-hearo-foundation</guid>
      <pubDate>Fri, 24 Apr 2026 22:00:00 +0000</pubDate>
      <description>Music player for IBM PC compatibles (286+, DOS 3.3+). Next NetISA suite app out of design phase. All eleven spec phases plus three polish items in hearo/: eight-module detection engine covering 24 audio devices, data-driven unlock matrix with around 70 rules, boot screen with CP437 logo and ENABLED report, four-pane text-mode UI (file browser + playlist + now-playing + ASCII spectrum), math library (24-iter adaptive CORDIC + bipartite tables + 256-bit accumulator), INI config + persistent Hall, six test programs, Watcom wmake Makefile. v1.0.1 work staged in src/platform/probes.c with Watcom #pragma aux + int86 bodies for every probe extern, gated behind -dHEARO_NOASM. Not compiled yet; Open Watcom V2 not installed.</description>
    </item>

    <item>
      <title>NetISA parts landed. Every line of the BOM is on the bench.</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-23-netisa-parts-landed</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-23-netisa-parts-landed</guid>
      <pubDate>Thu, 23 Apr 2026 22:00:00 +0000</pubDate>
      <description>Last Digikey box arrived. The NetISA BOM is now fully on the bench: TexElec 8-bit ISA prototype card, ESP32-S3-WROOM-1U-N8R8 modules, ATF1508AS CPLDs, passives (electrolytic + ceramic caps, 1% resistors, Schottky and signal diodes), IC sockets, pin headers, ribbon cable, anti-static everything, programmer kit. Software side has been parked on stub data for weeks; that gate is now open. Bench assembly starts next: socket the CPLD, wire ISA edge to register file, bring up power rails, flash first firmware image, attempt loopback from DOS.</description>
    </item>

    <item>
      <title>CERBERUS v0.8.1: same-day completion release</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-22-cerberus-v081</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-22-cerberus-v081</guid>
      <pubDate>Wed, 22 Apr 2026 18:00:00 +0000</pubDate>
      <description>CERBERUS v0.8.1 tagged same day as v0.8.0. Closes items deferred from v0.8.0. M1: IEEE-754 edge-case diagnostic (14 cases across 5 ops) + /CSV output with RFC 4180 minimal quoting. M2: L1 pointer-chase latency probe, 64 KB L2 reach via _fmalloc, DRAM ns derivation (128/256 KB deferred to 0.9.0). M3: IIT 3C87 DB row + routing, Genoa ET4000 3CDh probe, Hercules variant discrimination. Hotfix: /CSV was silently consumed by /C calibrated-mode prefix. Caught by DOSBox Staging end-to-end smoketest, not by host tests + wmake. New durable instruction: smoketest after every build.</description>
    </item>

    <item>
      <title>CERBERUS v0.8.0: trust-first release, four milestones in 36 hours</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-22-cerberus-v080</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-22-cerberus-v080</guid>
      <pubDate>Wed, 22 Apr 2026 12:00:00 +0000</pubDate>
      <description>CERBERUS v0.8.0 tagged. First release where every shipped result is real-iron verified. M1 trust-first foundation (Whetstone gated, upload compiled out, Watcom libc teardown hang fixed via _exit bypass, DGROUP audit tool). M2 FPU behavioral fingerprint expanded to 5 axes (FPTAN, rounding-control, precision-control, exception roundtrip) + cache stride=128. M3 CUA-lite interaction (F1 help, F3 exit, Norton legend, /MONO, CGA snow gate, 16-bg color). M4 docs parity + consistency-rule narration. Real-iron captures on BEK-V409 486 DX-2-66 and 386 DX-40 + IIT 3C87. 320 host-test assertions green, ~167 KB binary, DGROUP 59.5/64 KB.</description>
    </item>

    <item>
      <title>CERBERUS Part B: barelybooting-server v0.1.0 shipped, production-ready</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-21-barelybooting-server</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-21-barelybooting-server</guid>
      <pubDate>Tue, 21 Apr 2026 12:00:00 +0000</pubDate>
      <description>Companion server for CERBERUS upload ingest hit v0.1.0. Flask + SQLite + Jinja, ~700 lines of Python, strict upload contract enforcement. Docker + cloudflared sidecar deploy. Red-teamed: rate limit added, CSP + frame-deny, ASCII-strict, Content-Type whitelist, read-only container with cap_drop ALL and no-new-privileges. 24 host tests green.</description>
    </item>

    <item>
      <title>CERBERUS: ANSI three-head boot intro, issue sweep, Homage Phase 3</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-20-cerberus-intro-phase3</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-20-cerberus-intro-phase3</guid>
      <pubDate>Mon, 20 Apr 2026 04:00:00 +0000</pubDate>
      <description>Five commits past the v0.4.0 tag. Headline: adapter-aware three-headed-dog ANSI boot splash with OPL2 stinger, full classical iconography (Pseudo-Apollodorus, Virgil, Dante, Hercules). Issue sweep: #1 and #3 closed, #2 instrumented, #6 two test binaries built. Homage Phase 3: seven new lesson docs plus three attribution corrections (SPEEDSYS, PCPBENCH, 3DBENCH).</description>
    </item>

    <item>
      <title>CERBERUS v0.4.0 shipped. Three-release-candidate weekend closed.</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-19-cerberus-v040</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-19-cerberus-v040</guid>
      <pubDate>Sun, 19 Apr 2026 22:00:00 +0000</pubDate>
      <description>CERBERUS v0.4.0 tagged after a weekend arc of four release candidates on the BEK-V409 486 DX-2 bench box. Surgical rc1-to-final pass closed three UI defects (CP437 corruption, blank V_U32 rows, Dhrystone anchor framing). Seven Phase 2 Homage research docs shipped in parallel. 144,166-byte EXE, 163 host-test assertions, 8 consecutive clean real-iron runs.</description>
    </item>

    <item>
      <title>DOSBox-X automation quality gate: 9 Fatal + 31 Significant fixed</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-14c</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-14c</guid>
      <pubDate>Mon, 14 Apr 2026 18:00:00 +0000</pubDate>
      <description>Quality-gated the DOSBox-X automation tools (capture.ps1, dosrun.py, dosbuild.py, relay batch). 3 rounds, 40 issues fixed including atomic lockfile, PID recycling, tool discovery, zombie processes, silent black GIFs, ERRORLEVEL baseline. Automation now production-grade.</description>
    </item>

    <item>
      <title>NetISA end-to-end quality gate</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-14b</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-14b</guid>
      <pubDate>Mon, 14 Apr 2026 12:00:00 +0000</pubDate>
      <description>End-to-end quality gate on 14,300 lines across 7 components. 8 Fatal + 16 Significant issues found. DOS-side fixes committed. Firmware security hardening plan documented.</description>
    </item>

    <item>
      <title>TAKEOVER quality gate: 12 bugs fixed in 5 rounds</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-14a</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-14a</guid>
      <pubDate>Mon, 14 Apr 2026 06:00:00 +0000</pubDate>
      <description>Adversarial quality gate on TAKEOVER: 5 rounds, 12 issues fixed. Pool exhaustion, midnight tick wrap, OPL2 channel validation, LFSR safety, stack/DGROUP pressure, palette tearing, cracktro OPL2 reset, climax music, input sizing, control level reset, integer overflow.</description>
    </item>

    <item>
      <title>Discord v2: ground-up rebuild</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-13f</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-13f</guid>
      <pubDate>Mon, 14 Apr 2026 00:00:00 +0000</pubDate>
      <description>Ground-up Discord client rebuild: 939 lines to 2,400 lines, 14KB to 37KB EXE. 128 msgs/channel, multi-line compose, Ctrl+F search, PC speaker notifications, CP437 reactions, thread indicators, help/user overlays, settings persistence. 8 channels, 64 realistic messages, 10 modules.</description>
    </item>

    <item>
      <title>DOSBox-X development relay + Cathode parser fixes</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-13e</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-13e</guid>
      <pubDate>Mon, 13 Apr 2026 23:00:00 +0000</pubDate>
      <description>Development relay system for automated DOS testing via DOSBox-X (quality-gated, 7 review rounds). Used it to test Cathode against 11 real websites, found and fixed 3 parser bugs: HTML entity table expanded from 7 to 90+ entries, missing head-close handling, and 16-bit int overflow on pages over 32KB. All 12 tests pass.</description>
    </item>

    <item>
      <title>Cathode v0.2: Text-Mode Document Browser</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-13d</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-13d</guid>
      <pubDate>Sun, 13 Apr 2026 22:00:00 +0000</pubDate>
      <description>Major Cathode browser upgrade: streaming HTML parser, HTTP/1.0 fetch with redirects, UTF-8 to CP437 mapping, find on page, bookmarks, word-boundary wrapping, scroll bar. Renders real websites (text.npr.org, man.openbsd.org, barelybooting.com) in DOS text mode. 38.5KB EXE. Quality-gated: 5 rounds of adversarial review, 34 issues resolved.</description>
    </item>

    <item>
      <title>TAKEOVER v1.1: Demoscene Enhancement Pack</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-13c</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-13c</guid>
      <pubDate>Sun, 13 Apr 2026 18:00:00 +0000</pubDate>
      <description>Eight demoscene-inspired features: beat-synced visuals, OPL2 stingers, sine wave text distortion, state transitions (dissolve/wipe/fade/glitch), per-AI Mode 13h climax sequences, living status bar, VGA palette cycling, and a hidden cracktro with raster bars, DYCP scroller, starfield, and 9-channel chiptune. 58KB EXE.</description>
    </item>

    <item>
      <title>Claude for DOS</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-12b</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-12b</guid>
      <pubDate>Sun, 12 Apr 2026 18:00:00 +0000</pubDate>
      <description>Built CLAUDE.EXE, a Claude AI chat client for DOS with 3-mode agent system (Chat/Ask/Auto), far-heap message pool, word-wrapped rendering, and command execution via [EXEC] tags. Quality-gated with adversarial review.</description>
    </item>

    <item>
      <title>Site launch + community pages</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-12</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-12</guid>
      <pubDate>Sun, 12 Apr 2026 12:00:00 +0000</pubDate>
      <description>barelybooting.com is live. Project page, build log, RSS feed. The site exists because the project reached a point where a README isn't enough.</description>
    </item>

    <item>
      <title>v1 firmware complete</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-11</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-11</guid>
      <pubDate>Sat, 11 Apr 2026 12:00:00 +0000</pubDate>
      <description>ESP32-S3 firmware hit production quality after 8 rounds of adversarial review. WiFi manager, HTTP client with 4 concurrent TLS sessions, HTML-to-CP437 parser, embedded web config server, OTA updates.</description>
    </item>

    <item>
      <title>Discord client for DOS</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-10</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-10</guid>
      <pubDate>Fri, 10 Apr 2026 12:00:00 +0000</pubDate>
      <description>Text-mode Discord client running in DOSBox-X. 6 channels, word-wrapped messages with author colors, compose bar, scrolling. Discord on an 8088.</description>
    </item>

    <item>
      <title>Cathode text-mode browser</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-09</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-09</guid>
      <pubDate>Thu, 09 Apr 2026 12:00:00 +0000</pubDate>
      <description>Built Cathode, a text-mode HTTPS browser for DOS. Split architecture between DOS and ESP32. Link navigation, URL bar, back/forward history, CP437 box-drawing.</description>
    </item>

    <item>
      <title>DOS software stack complete</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-08</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-08</guid>
      <pubDate>Wed, 08 Apr 2026 12:00:00 +0000</pubDate>
      <description>Full DOS software stack built and tested. TSR driver, launcher with WiFi scanning, screen library, INT 63h API, stub layer for DOSBox-X testing.</description>
    </item>

    <item>
      <title>CPLD verification complete: 160/160 tests passing</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-06</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-06</guid>
      <pubDate>Mon, 06 Apr 2026 12:00:00 +0000</pubDate>
      <description>All 160 Verilog testbench tests passing. Address decode, wait states, watchdog, IRQ state machine. Zero bus contention. Lint clean.</description>
    </item>

    <item>
      <title>Hardware design finalized, parts ordered</title>
      <link>https://barelybooting.com/log.html#entry-2026-04-04</link>
      <guid isPermaLink="true">https://barelybooting.com/log.html#entry-2026-04-04</guid>
      <pubDate>Sat, 04 Apr 2026 12:00:00 +0000</pubDate>
      <description>Schematic and PCB layout finalized. ATF1508AS CPLD, ESP32-S3, Wiznet W5500 pads for v1.5 Ethernet. Parts ordered for prototype build.</description>
    </item>

  </channel>
</rss>
