Home

Non-commercial projects

Things I've worked on in a non-professional capacity.

Table of Contents

Products

Self-contained programs and libraries, usable standalone in their own right.


kbswitch (Windows)

Quickly and easily switch keyboard layout globally in Windows XP and Windows 7. There are two versions available - kbswitch, suitable for 32-bit Windows XP, and kbswitch2, suitable for all versions of Windows XP and Windows 7.


model-b (Windows)

model-b is a BBC Micro emulator, designed for playing BBC B and BBC B+ games on your Windows PC. model-b faithfully reproduces the BBC's sound and graphics, is very easy to use, and runs just about every BBC game out there.

model-b runs fine on a modern PC, but I haven't worked on it for some years now. You may be better off with B-Em (Linux/Windows) or BeebEm (Windows).


PyDoodle (Windows)

An interactive Python-programmable visual plaything I put together as an experiment. Create vector-based interactive 2D drawings in Python code, with an emphasis on instant feedback: parameters are modifiable by direct manipulation, and your Python scripts are reloaded automatically when they change.

Some example scripts are included.


Waterworks (Windows)

An amusing(?) executive toy.

I wasn't sure about including this, because it's ancient code. But after building it again I spent a fun ten minutes fiddling around with it, so… why not.


yhs (Windows, Mac OS X)

An embeddable, non-threaded HTTP server, designed for use in a game. The idea was that your game would expose HTML pages with sliders and text boxes (etc.), allowing settings to be configured from a web browser while the game was running.

In the end, I never ended up using it in anger, and would today take a slightly different tack, exposing data via WebSockets only. Producing HTML from the game code was less useful than I expected it to be.


Plugins

Addons, plugins and extensions for other programs.


minitags (Visual Studio)

A Visual Studio addin providing a convenient, configurable means of navigating the current file.

Finds lines in the document that match one of a set of regexps - that can be either specified in the file, inline, or in a .ini file - and lets you select one by substring. Then takes you to that line. Great for those nasty files that consist of a single function with a 2,500-line switch statement in it, but, really, the sky's the limit.

Supports VS2008, VS2010, VS2012, VS2013.


VSScripts (Visual Studio)

A Visual Studio extension that adds a simple scripting system.

Visual Studio's macro functionality was removed in Visual Studio 2012. This was most inconvenient for me, as I used macros a lot for inserting bits of text, so I created this addin to provide a substitute. It allows you to transform and insert text snippets using stdin-/stdout-based programs, scripts or batch files.

Supports VS2012, VS2013, VS2015.


Xcode User Scripts fixin (Xcode)

A plugin for Xcode 5/6 that adds a simple scripting system. Part of Dave Keck's Xcode Fixins.

Xcode 4 removed support for the Xcode 3 User Scripts feature, which let you transform and insert text snippets using standard stdin-/stdout-based programs or shell scripts. This fixin is a simple replacement, giving you similar functionality in Xcode 5 or Xcode 6.

(As of 2016, this has languished for a couple of years, since I no longer use Xcode - so its Xcode 7 compatibility is uncertain. But if I end up using it again, it will be resurrected.)


Command line and AutoHotKey tools


dispswitch (Windows), xdispswitch (Unix/X11)

Move current window to the next display monitor. Use in conjuction with a hotkey-based launcher utility such as AutoHotKey. (dispswitch is for Windows; xdispswitch is for Unix/X11 (with Xinerama extension).)

These projects are both quite simple, and, in dispswitch's case, a touch messy. But I use them so often that it would be rude not to include them.


align_window2 (Windows)

Quickly move and resize the current window so it fills a quarter or a sixth of the screen. Use in conjunction with a hotkey-based launcher utility such as AutoHotKey.

(For something similar for Mac OS X, try ShiftIt.)


Command line tools pick'n'mix (Windows, Mac OS X, Unix)

A selection of command line tools, mostly cross platform, mostly written in Python.

Some of these, you might actually find useful: bin2cstr, bin2hex, change_ext, count, dump, diff2, wavdump, and so on.

Some, such as relocate_prg, might be of niche interest only…


BBC Micro-related tools (Windows, Mac OS X, Unix)

BBC Micro-related command line tools, useful when developing BBC Micro programs on a modern PC.


BBC Micro stuff


Updated BASIC Editor

An updated version of Acornsoft's BASIC Editor ROM for the BBC Micro. I had disassembled this a few years previously, and created a modified version with a few spot hacks here and there (there were 200-odd bytes free for patches). I cleaned up the disassembly so it could be reassembled, giving me room to be a bit more adventurous with new features.

(I have a BASIC Editor thread on the stardot forums that I post to when I update this.)


Little patches