Site: the devlog, the blog's roro9stack posts in the site's style; Devlog replaces Blog in the navigation
Site / build (pull_request) Successful in 9s

Seven posts imported into site/content/devlog/ with their text unchanged,
links between them pointing to /devlog/, and shortcodes (sign, cast, steps,
asides, folded sections, diagrams, captions) restyled in the site's palette.
The 17 inline SVG diagrams carried <style> blocks and style attributes the
site's Content-Security-Policy refuses: their rules moved to
devlog-diagrams.css, and a diagram's minimum width is a class. An Atom feed
at /devlog/atom.xml.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
2026-10-06 20:51:33 +02:00
co-authored by Claude Sonnet 5.5
parent 2729f2e218
commit 6e54658ba4
61 changed files with 2832 additions and 4 deletions
@@ -0,0 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 330" role="img" aria-label="The end of a multi-block write to an SD card, as a timeline. The card accepts the last block, receives the Stop Tran token, takes about one byte of clock before it signals busy, stays busy while it programs, then is ready. The original driver sends Stop Tran, deselects and selects the card, and reads one byte to test for ready: that byte arrives before the card has signalled busy, reads 0xFF, and is taken as ready. The driver then sends the status command CMD13 while the card is still programming, gets 0xFF or 0x1F back, and reports a write error. The fixed driver sends a dummy byte after Stop Tran and another after selecting the card, so its ready test sees busy, waits, and sends CMD13 once the card is ready: status 0x00, the write succeeded.">
<g font-family="JetBrains Mono, ui-monospace, monospace" fill="currentColor" font-size="10">
<text x="16" y="24" font-size="12" font-weight="600">The card</text>
<rect class="sd-box" x="16" y="34" width="150" height="40" rx="5"/>
<text x="24" y="50">last block</text><text x="24" y="64" class="sd-dim">answers 0x05: accepted</text>
<rect class="sd-box" x="170" y="34" width="96" height="40" rx="5"/>
<text x="178" y="50">Stop Tran</text><text x="178" y="64" class="sd-dim">0xFD</text>
<rect class="sd-bad" x="270" y="34" width="88" height="40" rx="5"/>
<text x="278" y="50">not busy yet</text><text x="278" y="64" class="sd-dim">reads 0xFF</text>
<rect class="sd-busy" x="362" y="34" width="240" height="40" rx="5"/>
<text x="370" y="50">busy: programming the blocks</text><text x="370" y="64" class="sd-dim">reads 0x00</text>
<rect class="sd-box" x="606" y="34" width="138" height="40" rx="5"/>
<text x="614" y="50">ready</text><text x="614" y="64" class="sd-dim">reads 0xFF</text>
<line class="sd-guide" x1="314" y1="76" x2="314" y2="262"/>
<line class="sd-guide" x1="606" y1="76" x2="606" y2="262"/>
<text x="16" y="112" font-size="12" font-weight="600">The driver, as shipped</text>
<rect class="sd-box" x="170" y="122" width="96" height="40" rx="5"/>
<text x="178" y="138">Stop Tran,</text><text x="178" y="152" class="sd-dim">then reselect</text>
<rect class="sd-bad" x="270" y="122" width="88" height="40" rx="5"/>
<text x="278" y="138">ready?</text><text class="f-red" x="278" y="152">0xFF: yes</text>
<rect class="sd-bad" x="362" y="122" width="150" height="40" rx="5"/>
<text x="370" y="138">CMD13: status?</text><text class="f-red" x="370" y="152">0xFF or 0x1F: "error"</text>
<text class="f-red" x="522" y="138">the write "failed"</text>
<text class="f-red" x="522" y="152">(it hadn't)</text>
<text x="16" y="200" font-size="12" font-weight="600">With two dummy bytes</text>
<rect class="sd-box" x="170" y="210" width="96" height="40" rx="5"/>
<text x="178" y="226">Stop Tran</text>
<rect class="sd-new" x="270" y="210" width="88" height="40" rx="5"/>
<text x="278" y="226">dummy,</text><text x="278" y="240">dummy</text>
<rect class="sd-busy" x="362" y="210" width="240" height="40" rx="5"/>
<text x="370" y="226">ready? 0x00: no. Waits.</text><text x="370" y="240" class="sd-dim">up to 500 ms; it took at most 107</text>
<rect class="sd-good" x="606" y="210" width="138" height="40" rx="5"/>
<text x="614" y="226">CMD13: status?</text><text class="f-green" x="614" y="240">0x00: written</text>
<text x="16" y="290" class="sd-dim">About once in 1,500 writes, the first byte after reselecting came before the card had raised busy.</text>
<text x="16" y="306" class="sd-dim">Time runs left to right; not to scale.</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB