Deep Dive: Kansas City Standard Cassette Storage
Building a Kansas City Standard cassette peripheral: FSK at 2400/1200 Hz, tape transport simulation, and why saving 8 KB takes five minutes.
Writeups, deep dives, and devlogs — antennas and packet radio at one end, emulators and language design at the other.
Building a Kansas City Standard cassette peripheral: FSK at 2400/1200 Hz, tape transport simulation, and why saving 8 KB takes five minutes.
Kubernetes/K3s deployment configs, CI/CD scaffolding, schema-driven API generation, and the Star Trek BASIC backend.
Building BASIC, Forth, and Scheme interpreters in Rust, running them in browser workers, and what the contrast between them revealed.
Moving the web app under web/, migrating three parsers to Pest and Pratt, and getting the Z-Machine opcode engine executing.
Why you can't just shovel bytes through a virtual modem: RTS/CTS backpressure, buffer gates, and the timing budget that makes dial-up feel like dial-up.
Building a Z-Machine transpiler in Rust: opcode decoding, Z-strings, branch offsets, and the constraints that make Infocom's bytecode tick.
Z-Machine decoder work, text handling, and SAVE/RESTORE, plus content-addressable storage with S3 sync.
Turning the dungeon crawler demo into a persistent roguelike: progression gates, deterministic daily seeds, and meta-unlocks across five pull requests.
Intel 8088 demos, Zig-based 6502 experiments, and migrating the frontend to TypeScript for better type safety.
Translating PETSCII screen memory into ANSI terminal output: character maps, colour approximation, and the minimal contract a terminal-based VIC‑II can keep.
Splitting the repository into cores, languages, assemblers, and BIOS so the directory layout matches the dependency graph.
Making the WASM build honest about its dependencies, loading backends on dial, and giving the modem one source of truth for pacing.
Simulating Bell 212A and V.32bis handshakes: phase modulation, training sweeps, and why the negotiation audio has the shape it does.
Implementing the 1962 modem standard behind 300 baud dialup: FSK modulation, Goertzel demodulation, and the two-band split that makes full duplex work.
Nine small bugs in the CRT, modem, and BBS paths, cleared before they had a chance to compound.
The first implementation of an APRS-IS Tier2 server and iGate using Raspberry Pis.
The second round of tuning the Butternut HF9V took place a few days after the storm on installation day.
Assembly and initial installation of the Butternut HF9V multi-band ham radio antenna.