56,966 blogs · [ { "id": "01a08c63-55a7-7285-8f44-9acd61081722", "title": "Why Microsoft SoftCard CP/M Wouldn't Boot With a Videx Videoterm", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-01-why-cpm-wouldnt-boot-with-a-videoterm/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6138a8d1", "title": "The Components of 2.20", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-02-the-components-of-2-20/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd616422c1", "title": "How the Source Is Organized", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-03-how-the-source-is-organized/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd616d491d", "title": "Compiling the Sources", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-04-compiling-the-sources/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6251eb06", "title": "From Binaries to Boot Tracks", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-05-from-binaries-to-boot-tracks/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd62569514", "title": "The Rest of the Disk", "url": "https://www.wiseowl.com/articles/softcard-cpm-os-06-the-rest-of-the-disk/", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd62b33889", "title": "Two Disassemblers, and Telling Code From Data", "url": "https://www.wiseowl.com/articles/cpm-from-source-01-two-disassemblers-code-vs-data/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd633aaf68", "title": "Decompiling One Program by Running It", "url": "https://www.wiseowl.com/articles/cpm-from-source-02-decompiling-one-program-by-running-it/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd634444e7", "title": "Decompiling the Whole Disk", "url": "https://www.wiseowl.com/articles/cpm-from-source-03-decompiling-the-whole-disk/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd64139f9b", "title": "As-Shipped, Not Snapshotted: the Doctrine", "url": "https://www.wiseowl.com/articles/cpm-from-source-04-as-shipped-not-snapshotted/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd643b1bf2", "title": "One Source, Two Addresses: Single-Source Rebuilds and Diffing Versions", "url": "https://www.wiseowl.com/articles/cpm-from-source-05-one-source-two-addresses/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd64ef8dfc", "title": "The Whole Distribution, Rebuilt From Source", "url": "https://www.wiseowl.com/articles/cpm-from-source-06-the-whole-distribution-rebuilt/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd655e3a84", "title": "The Card That Wouldn't Boot CP/M", "url": "https://www.wiseowl.com/articles/softcard-cpm-01-did-i-break-it/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd66076f5d", "title": "The Answer That Agreed With Itself", "url": "https://www.wiseowl.com/articles/softcard-cpm-02-the-answer-that-agreed-with-itself/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd66d15322", "title": "Two Right Parts, One Dead Machine", "url": "https://www.wiseowl.com/articles/softcard-cpm-03-two-right-parts-one-dead-machine/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd675f97c6", "title": "Two Tools and a Whole Distribution", "url": "https://www.wiseowl.com/articles/softcard-cpm-04-two-tools-and-a-whole-distribution/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd67e92162", "title": "Why a Replica, Not a Reading", "url": "https://www.wiseowl.com/articles/softcard-emulator-01-why-a-replica-not-a-reading/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6809dfd2", "title": "One Memory, Two CPUs, and a Bus Switch", "url": "https://www.wiseowl.com/articles/softcard-emulator-02-one-memory-two-cpus-a-bus-switch/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd68aaff34", "title": "Hooking the Contracts: Disk, Monitor ROM, and the Keyboard the Z-80 Reads Itself", "url": "https://www.wiseowl.com/articles/softcard-emulator-03-hooking-the-contracts/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd68e9d26b", "title": "Modeling the Videx Until Its Ownership Rules Become Visible", "url": "https://www.wiseowl.com/articles/softcard-emulator-04-modeling-the-videx/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd69a7c090", "title": "What the Replica Found, and the Wrong Answer It Gave First", "url": "https://www.wiseowl.com/articles/softcard-emulator-05-what-the-machine-found/", "published_at": "2026-06-16T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6a1ab4ae", "title": "Emulating the SoftCard, Part 1: Why Static Analysis Wasn't Enough", "url": "https://www.wiseowl.com/articles/softcard-emu-01-why-static-analysis-wasnt-enough/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6a30fc74", "title": "Emulating the SoftCard, Part 2: Building a Two-CPU Machine in Python", "url": "https://www.wiseowl.com/articles/softcard-emu-02-building-a-two-cpu-machine-in-python/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6a494f8a", "title": "Emulating the SoftCard, Part 3: What a Working Replica Discovered", "url": "https://www.wiseowl.com/articles/softcard-emu-03-what-a-working-replica-discovered/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6a9573eb", "title": "What the CP/M pipeline does, and how to run it", "url": "https://www.wiseowl.com/articles/cpm-pipeline-what-it-does-and-how-to-run-it/", "published_at": "2026-05-04T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6aa2587b", "title": "Two disassemblers, and the trouble with telling code from data", "url": "https://www.wiseowl.com/articles/round-trip-discipline-disassembler-bug-detector/", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6b8aecbe", "title": "Four Bugs That Lived in the Dark", "url": "https://www.wiseowl.com/articles/a2fpga-bus-bugs-five-that-lived-in-the-dark/", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6c79ef5d", "title": "The Clock Card That Just Works", "url": "https://www.wiseowl.com/articles/a2fpga-thunderclock-the-clock-card-that-just-works/", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6c93525b", "title": "Building the Rendering Pipeline", "url": "https://www.wiseowl.com/articles/a2fpga-videx-02-building-the-rendering-pipeline/", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6cb2dbed", "title": "The Card That Made the Apple II Serious", "url": "https://www.wiseowl.com/articles/a2fpga-videx-01-the-card-that-made-the-apple-ii-serious/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6d008a21", "title": "Forty Years of BitBlt", "url": "https://www.wiseowl.com/articles/smalltalk-07-forty-years-of-bitblt/", "published_at": "2026-02-10T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6da53933", "title": "First Pixels", "url": "https://www.wiseowl.com/articles/smalltalk-06-first-pixels/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6df2ea0a", "title": "The Ghost in the Source File", "url": "https://www.wiseowl.com/articles/smalltalk-05-the-ghost-in-the-source-file/", "published_at": "2025-11-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6e8cd9ef", "title": "The Machine That Runs the Machine", "url": "https://www.wiseowl.com/articles/smalltalk-04-the-machine-that-runs-the-machine/", "published_at": "2025-10-27T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd6f6e449a", "title": "Building a Universe from a Blueprint", "url": "https://www.wiseowl.com/articles/smalltalk-03-building-a-universe-from-a-blueprint/", "published_at": "2025-10-13T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd705aa275", "title": "The Compiler That Couldn't Run Its Own Output", "url": "https://www.wiseowl.com/articles/smalltalk-02-the-compiler-that-couldnt-run-its-own-output/", "published_at": "2025-09-15T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd715908d3", "title": "The Object at the End of the Universe", "url": "https://www.wiseowl.com/articles/smalltalk-01-the-object-at-the-end-of-the-universe/", "published_at": "2025-07-07T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd71d638f6", "title": "nibbler: A WOZ Disk Analysis Toolkit", "url": "https://www.wiseowl.com/articles/apple-panic-05-nibbler-toolkit/", "published_at": "2025-03-03T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd7283382d", "title": "Forty-Five Kilobytes", "url": "https://www.wiseowl.com/articles/apple-panic-04-forty-five-kilobytes/", "published_at": "2025-02-24T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd73579bab", "title": "The Bug Was in Our Own Code", "url": "https://www.wiseowl.com/articles/apple-panic-03-the-bug-was-in-our-own-code/", "published_at": "2025-02-17T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd73cedbef", "title": "Reading Code That Lies", "url": "https://www.wiseowl.com/articles/apple-panic-02-reading-code-that-lies/", "published_at": "2025-02-10T00:00:00+00:00" }, { "id": "01a08c63-55a7-7285-8f44-9acd7445a394", "title": "The Disk That Couldn't Be Copied", "url": "https://www.wiseowl.com/articles/apple-panic-01-the-disk-that-couldnt-be-copied/", "published_at": "2025-02-03T00:00:00+00:00" } ] posts Claim your blog
Back to wiseowl.com
Blog · corpus.blog/blogs/wiseowl.com/posts

wiseowl.com

wiseowl.com

2026

2025