Inklings: a tumblelog

The only unbreakable law (of software architecture)


Wordle, ach as Gaeilge!

The Elements of Statistical Learning: Data Mining, Inference, and Prediction

The whole book is available for download as a PDF.

Using a Wii Nunchuk with Arduino

Apparently it uses I²C.

puzzle together in this modern yet familiar online stacker. play against friends and foes all over the world, or claim a spot on the leaderboards - the stacker future is yours!

It’s Tetris. I’d a bit of fun with it.

Hexstatic - Chase Me


xa is a high-speed, two-pass portable cross-assembler. It understands mnemonics and generates code for NMOS 6502s (such as 6502A, 6504, 6507, 6510, 7501, 8500, 8501, 8502 …), CMOS 6502s (65C02 and Rockwell R65C02) and the 65816.

This looks to be packaged on Ubuntu as xa65.


A digital oscilloscope interface for Android. I’m planning on trying its Hantek 6022BE support. While OpenHantek6022 is working just fine for me, this is an option to save desk space.


OpenHantek6022 is a DSO software for Hantek USB digital signal oscilloscopes 6022BE/BL.

Deliberate Note-Taking

I recently read this book called “How to Take Smart Notes”. As the title suggests, the book is largely about taking notes. I came to find that it is about more than that. The note-taking is just a means to an end. The note-taking technique that the author discusses is a way to make you a more effective reader and writer.

What I learned in this book is that to really be reading effectively, you have to be taking deliberate notes. Underlining, scribbling in the margins, and copying down quotes do not provide the same benefits as taking deliberate notes.

HOWTO: Solder by hand

While my first attempt in decades of soldering didn’t go too badly, it was way more frustrating than it should’ve been.

I need to do some reading. And maybe steadier hands.

Upgrading My Acorn A3010

I have two (yes, two) A3010s sitting in my parent’s place. This looks interesting…

TL866II+ EEPROM Programmer Review


This is a GAL IC programmer software that allows to program GAL IC chips from various manufacturers. […] Afterburner was written for Linux (also works on Win32/64, Mac OSX64), and requires a serial connection to an Arduino UNO, which does the programming of the GAL chip.

Supported GAL chips:

  • Atmel ATF16V8B, ATF22V10B, ATF22V10CQZ
  • Lattice GAL16V8A, GAL16V8B, GAL16V8D
  • Lattice GAL22V10B
  • National GAL16V8


An open source program for controlling the MiniPRO TL866xx series of chip programmers.

This program exists because the manufacturer of the MiniPRO TL866xx series of chip programmers does not provide a program for use on Linux or other flavors of Unix. We who keep this project going prefer a simple, free, and open-source program that presents a command-line interface that allows for a GUI front-end if desired.

This is an alternative to “Using the XGecu TL866II Plus Under Linux with Wine” (via).

Also see radiomanV/TL866.


htmx allows you to access AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext

Racing the beam explained: Atari 2600 CPU vs CRT television

Designing a simple ADSR(-ish) envelope generator from scratch

Fitting a FORTH in 512 bytes

Also see sectorforth.

Linkers and Loaders

These are the uncorrected manuscript chapters for my Linkers and Loaders, published by Morgan-Kaufman.

Codebase 64

This wiki is the number one source of articles on Commodore 64 programming. You will find source code, tutorials, manuals, notes on clever tricks and hardware quirks and more!

Retro Sound Chip With an Arduino: the SAA1099

There looks to be an error in the description, as the common part of an audio jack should go to GND, not +5V.

Anyhoo, I don’t know enough about this stuff. I should really get a breadboard and experiment.

A simple universal 800×600 VGA signal generation circuit

Just curious as to what would be involved in generating a VGA (though 800×600 is actually SVGA) signal.

I was reading up on the Motorola 6845 CRTC to see how you’d drive a display. That only tells you what you should be rendering at any given moment, and between the VGA signal generation circuitry and the 6845 (though a HD6445 CRTC-II might be more appropriate), you’d need a bit of glue logic to take the output of the CRTC, look up the character and palette data, then translate that to pixel data based on a character and palette ROM lookup.

All this is way beyond me right now though! Still, at some point, building something like that (maybe some kind of VGA terminal) might be a fun exercise when I’ve some kind of actual competency in this stuff.

Lazy load embedded YouTube videos

This looks like an interesting approach to speeding up the rendering of pages on this site. The primary source of slowdown on this site is YouTube embeds. Now that I’ve fixed YouTube’s embed sizing issues here, I want to finish things off by replacing them with façades such as this. I’ll experiment with this, and if it doesn’t seem to do what I want, I’ll try something with <div> elements and some Javascript.


SkoolKit is a collection of utilities that can be used to disassemble a Spectrum game (or indeed any piece of Spectrum software written in machine code) into a format known as a skool file. Then, from this skool file, you can use SkoolKit to create a browsable disassembly in HTML format, or a re-assemblable disassembly in ASM format. So the skool file is - from start to finish as you develop it by organising and annotating the code - the common ‘source’ for both the reader-friendly HTML version of the disassembly, and the developer- and assembler-friendly ASM version of the disassembly.

I mainly want this for, as I want to fiddle around with some Z80 development for the Spectrum and Spectrum Next using z80asm, which is a bit barebones by itself.

PLA20V8: The Commodore 64 PLA that you can build yourself

The Commodore 64 is a computer that refuses to die and decades after its introduction, its community is still going strong. Many computers still work fine, in contrast to generations of computers that came after it, and died too soon, Commodore 64 hardware is often in good shape. But that doesn’t mean that these computers never fail, and repairing them is a common activity in the community. If you work with Commodore 64 hardware, you will know that a broken PLA is one of the most common defects. Especially PLAs that were produced in the years 1983 and 1984.

Go Modules Cheat Sheet

Well, this filled in a bunch of random gaps in my understanding!

Pasmo, a portable Z80 cross-assembler

Recreating the Jupiter Ace

It’d been buzzing around my head to make something like this a long-term project, so I could build something cool, and also learn more about PLDs and the like, but it seems somebody’s already done that in the form of the Jupiter-II (which has an expansion board that adds lots of nice things). Downside is that his design uses lots of surface-mount parts, which I wouldn’t even have remotely the skill to solder.


Seems like a reasonable alternative to Tarsnap in cases where it’s not practical. Mind you, the author still considers it alpha quality software.

Rust Language Cheat Sheet


Fast 3kB alternative to React with the same modern API

If it even happens I need something like React, this seems like a decent alternative.

Mind you, it’s only 3kB if it’s compressed: the actual module is around 10kB.

Inside the HP Nanoprocessor: a high-speed processor that can't even add

An odd bit of hardware I’d never heard of. It was contemporary of the 8008 and 6800, but had some very quirky design features that allowed it to be manufactured at a fraction of the cost. It’s use at the time seems to have mainly been in embedded systems and special purpose hardware.

How to be miserable for the rest of your life

HOME - Resonance

Wyspa - Piotr Kuciapski

So, this is stupidly good!

Seeeduino XIAO

Interesting Arduino-like board. Particularly nice is that it has a USB3 port, and is about the size of a postage stamp.

Cigarettes After Sex - Nothing's Gonna Hurt You Baby

Protect domains that don’t send email

While I’ve been setting up SPF records like this, it’s never occurred to me that domains with an appropriate SPF record might also need DMARC and DKIM records to go along with it. I’ll be setting that up.

C64 Saver 2

The C64 Saver 2 is an open-source project intended to make overvoltage protection available and easy to make for anyone interested in using the old Commodore power brick together with the C64. The power brick is 20-30 years old and it is known for failure with overvoltage. This is caused sometimes because of broken solder joints on the regulator or the regulator itself failing.

I’ve pretty much always had an aftermarket brick for my C64, as the original died a few years after I got my original. I don’t think I should trust the almost three decade old replacement brick, so if I power up my C64 again, I’d like to build something like this to put in line between it and the brick.