Welcome to decuser's blog

Topics on this blog include computing, retro-computing, operating systems, math, and whatever other technical subjects I happen to be exploring that I find interesting enough to take and share notes about.

Posts

    • aiki programming-languages ai self-hosting

      Aiki: Alpha Milestone 26 Update

      I have been busy with Aiki lately, and the last couple of days have been especially active. I return to my day job next week. I am a Computer Information Systems professor at Tarleton State University. So, I have been using the remaining summer window to close several related pieces of work.

      The current state is tagged v0.4.0-alpha-26. I do not plan to create a GitHub Release for every such point. master moves as development continues; tags mark states worth stopping on.

      The first public alpha already included most of the language proper: exact rational arithmetic, left-to-right evaluation, first-class functions, recursion and iteration, pipelines, shaped data, modules, recoverable errors, isolated concurrency, graphics, a standard library, semantic profiling, executable documentation, behavioral golds, grammar coverage, and a substantial invariant framework. Most of the work since then has not enlarged that surface very much. It has made the relationships underneath it considerably stricter.

    • aiki programming-languages ai education

      Aiki: First Public Alpha

      I've put the first public alpha of Aiki on GitHub.

      Aiki is a small experimental programming language I've been working on for the past several months. I describe it as both a programming language and a learning field: an environment designed to make computational relationships visible enough to inspect, experiment with, and reason about.

      The current release is v0.4.0-alpha. It includes the interpreter, standard library, documentation, examples, tests, validation machinery, and the project's engineering record. Intel/amd64 release archives are available for Linux, Windows, and macOS.

    • unix unix-v6 lions pdp-11 opensimh

      Lions Laboratory: A Sixth Edition UNIX Laboratory for OpenSIMH

      As a follow-up to my note on setting up a Sixth Edition UNIX laboratory in OpenSIMH, I have now put the complete laboratory repository on GitHub:

      decuser/lions-laboratory

      The repository contains the V6 distribution materials, OpenSIMH configurations, PDP-11/40 and peripheral documentation, known-good system checkpoints, and the working notes I have accumulated while reading Lions and experimenting with the system.

    • unix research-unix v6 dec

      Getting DOS-11 V004A Running on a PDP-11/40

      Getting DOS-11 V004A Running on a PDP-11/40

      I did not set out to install DOS-11.

      I have been working with Sixth Edition UNIX on a simulated PDP-11/40, partly to understand the system itself and partly to get closer to the environment described by Lions. That inevitably led downward. Reading the V6 source means reading PDP-11 assembly, and reading PDP-11 assembly means spending some time with the tools and conventions that existed around the machine before and alongside UNIX.

      That led me to PAL-11R, DEC's relocatable assembler for the PDP-11, and from there to DOS-11.

    • unix research-unix v6

      Setting Up UNIX—Sixth Edition: An OpenSIMH Laboratory for Reading Lions

      This note covers building a complete, restorable Sixth Edition UNIX laboratory in OpenSIMH for reading John Lions’ A Commentary on the UNIX Operating System. First, the reader is led through restoring the original V6 distribution from tape to RK05 disk images. Next, the kernel is reconfigured and rebuilt for the PDP-11/40 and the simulated devices used in the laboratory. The remaining source and documentation filesystems are then installed, the required special files are created, and the completed system is verified and archived as a restorable baseline.

      The note explains each step of the process in detail and connects Lions’ commentary and numbered source listing to the corresponding files and configured kernel in the running V6 system.

    • go tools github-pages

      Migrating from Jekyll to a custom static site generator

      Replaced the Jekyll-based blog with a custom static site generator written in Go.

    • tools go

      dex - directory comparison tool in Go

      Released dex, a Go port of my Python dircmp utility. Clean architecture, static binaries, no dependencies.

      Compares two directory trees and sorts files into five buckets:

      1. Exact match — same path, same content
      2. Modified — same path, different content
      3. Same content, different path
      4. Only in src
      5. Only in dst

      Also finds duplicates within a single directory.

      dex [options] <dir>           # find duplicates
      dex [options] <src> <dst>     # compare directories
      

      Options: -a hidden files, -r recurse, -f fast digest, -b brief, -l full digests.

      Prebuilt binaries for Linux and macOS in the releases.

    • retro assembly videos

      Bit by Bit - E10.1 - Assembly Lines ch. 7 - addressing modes

      Video

      In this first of two episodes on ch. 7, we're going to look at how you use different addressing modes to get data from memory.

      Here's a link to the playlist:

      https://www.youtube.com/playlist?list=PL_z8XUfqFSXHvJ5E5r80ZmMN7LRcCI0Zx

      Enjoy!

    • retro assembly videos

      Bit by Bit - E9.1 - Assembly Lines ch. 6 - I/O Using the Monitor and Keyboard

      Video

      This is part one of two dealing with I/O. In this episode, we'll track along with Assembly Lines ch. 6 and do some paddle reading (mouse). We'll explore the assembly instruction CMP and try to keep the lessons constrained to ~30 mins or thereabouts.

      Here's a link to the playlist:

      https://www.youtube.com/playlist?list=PL_z8XUfqFSXHvJ5E5r80ZmMN7LRcCI0Zx

      Enjoy!

    • retro assembly videos

      Bit by Bit - E9.2 - Assembly Lines ch. 6 cont. - keys and strobing

      Video

      In this second of two episodes on ch. 6, we're going to look at how to read the keyboard, with and without clearing the strobe.

      Here's the link to the referenced Apple II Reference Manual

      Here's a link to the playlist:

      https://www.youtube.com/playlist?list=PL_z8XUfqFSXHvJ5E5r80ZmMN7LRcCI0Zx

      Enjoy!