All Articles

Advent of Code 2018: 25 Days, 25 Languages

There are lots of different programming challenges, but this year one in particular has caught my attention and I have decided to take part. Advent of Code starts 1st December with daily programming p...   Read More

Book Review: What the Dormouse Said by John Markoff

The premise of this book is that the 60s/70s counter-culture led to the personal computer revolution. I think the book demonstrated well how this influenced SAIL and how the Augment lab innovations led...   Read More

How to Make Thunderbird Feel Like Geary

Geary is a lightweight email client inspired by gmail's interface. Its simple minimalistic interface is quite pleasant to use and initially I was really pleased to switch to it from Thunderbird. Howe...   Read More

Beware of Immutable Lists for F# Parallel Processing

With F#, the list often feels like the default choice of data structure. It is immutable and hence easy to reason about, however its use can come at a great cost. If you are using lists to process la...   Read More

Rendering Racket Package Scribblings on Github Using gh-pages

With the new package management system for Racket, there is a need to host documentation for the package somewhere. Github allows you to host web pages, and hence a package's documentation, by putting...   Read More

Programmable Character Sets: A Simple Alternative to Bitmap Displays

Programmable or reconfigurable character sets were a simple alternative to fully bitmappable displays. The main driving force behind their creation was a desire to keep the cost of computers low: RAM ...   Read More

Adding a Basic Stub to a Vic-20 Assembly Language Program

To make machine language programs more friendly it is nice to add a basic stub which contains a line with a SYS statement to start the code. This is easy to do on the Vic-20 and the process gives you ...   Read More

Creating a TTY Simulator in Assembly Language on the Vic-20

The Vicmon machine language cartridge is an excellent tool for exploring the Vic-20. This article and its associated video will show you how to use it to create a simple program that will change the n...   Read More

BBS Ads: Getting the Word Out

BBS Ads were important to users and sysops of BBS's. There wasn't any universal directory like the phone book, and during the heyday of BBS's (early '80s to the mid '90s), most people couldn't easily ...   Read More

Beginning Assembly Programming on the Commodore Vic-20

The Commodore Vic-20 is a great machine to learn an assembly language on. It was released in 1981 and was the first computer to sell one million units, which contributes to its popularity today. The ...   Read More

Using C-Kermit to Exchange Files With Telnet BBS's

Most BBSs that are still running now do so via telnet. In many ways this is great as it allows people from all around the world to access a BBS as if it were local to them. The problem comes though, ...   Read More

Connecting to a Remote Serial Port over TCP/IP

Most modern machines don't have a serial port as standard; you could use a USB to serial lead, however, if you have another machine available that does have a serial port you can access it remotely ove...   Read More

Using Netcat to Create ad hoc Links Between Applications or Machines

Netcat is a simple Unix utility which reads and writes data across network connections using the TCP or UDP protocol. It is often described as the "Swiss-army knife for TCP/IP" because of it...   Read More

If Only Borland Had Stuck With Turbo Modula-2 For CP/M

I have written previously about why Turbo Pascal is a Great Choice For Programming Under CP/M and now it is time to talk about what could have been. You probably haven't heard of Turbo Modula-2 for CP...   Read More

Turbo Pascal: A Great Choice For Programming Under CP/M

CP/M was blessed with many programming languages, each with their own strengths and weaknesses. I think that Turbo Pascal stands out from these and I'm not alone. When Turbo Pascal was released in 19...   Read More

xdgbasedir: A Tcl Module to Access the XDG Base Directory Specification

Unix has traditionally lacked a consistent way of storing user specific and system wide configuration and support files. This has lead to a mess of dot files in a user's home directory and other assoc...   Read More

Compiling a Tcl Script into an Executable

Locating Tcl scripts to load from an executable can be awkward if you want to make your program cross-platform. An easier way is to compile a Tcl script directly into the executable and let that scrip...   Read More

Floppy Days: A New Vintage Computing Podcast

I have just finished listening to the first episode of Floppy Days and I'm pleased to report that it looks like this is going to be a good addition to the vintage computing landscape. The presenter, R...   Read More

Using Dynamically Generated Header Files with CMake

Sometimes it can be useful to dynamically generate header files and include them from a C source file. However, it can be a little difficult getting CMake to recognize when to generate the files and w...   Read More

Embedding an SDL Surface in a Tk Window

Tk is great, but sometimes it just isn't fast enough. SDL is fast, but has no support for input dialogs and other GUI conventions. By embedding an SDL surface in a Tk window you get the best of both ...   Read More

Refactoring: Arm Yourself in the War Against Useless Comments

Comments, comments, everywhere, but are they making your code clearer or just distracting you? Comments are meant to be there to explain code and help you to understand it. However, they are often ou...   Read More

Dealing Sympathetically with Legacy Code

I have often noticed programmers getting worked up about the legacy code they are maintaining. I know it is annoying having to wade through poor code, or worrying about making changes for fear of unex...   Read More

Pisceans and October Babies More Likely to Become Poets. Scraping Wikipedia Reveals All

This is the second in a series of articles looking into whether when you were born affects your future. In the previous article I looked at Nobel laureates, which are, of course, from a range of field...   Read More

Does When You Were Born Affect Your Chance of Becoming a Nobel Laureate? Scraping Wikipedia to Find Out

There has been a lot of talk in the UK recently about whether when you were born affects your schooling. Lots of teachers have noticed how pupils born at the end of the Summer often struggle compared ...   Read More

Improving the related_posts feature of jekyll

Now that I have converted TechTinkering over to Jekyll, I have come up against a bit of a problem with site.related_posts: The results are always just the latest posts, and are not filtered or ordered ...   Read More

Mida - A Microdata parser/extractor library for Ruby

I have recently released Mida as a Gem for parsing/extracting Microdata from web pages. Not many sites at the moment are using Microdata, in fact, apart from this site, I only know of one other: Trust...   Read More

A Jekyll Plugin to Display Ratings as Star Images

I have been using Jekyll a lot recently on the Trust a Friend website and found the need to display a rating as a series of stars. Initially I implemented this in JavaScript, which worked fine, but I ...   Read More

The National Museum of Computing at Bletchley Park

The National Museum of Computing is the UK's largest museum dedicated to computing. It is located on the Bletchley Park estate just south of Milton Keynes and is easy to get to by car, bus or train. ...   Read More

xAce is Back in Active Development and Looking For Contributors

xAce is a great Jupiter Ace emulator and is in fact the one that I use the most, however it hasn't been actively developed since 1997 and therefore has some shortcomings. I am keen to improve the emul...   Read More

Introducing TextPix v0.1 - A program to convert an image into a character set and text mode screen data

I have today released TextPix v0.1 This is a program to take an image and convert it into a redefined character set and the associated text mode screen data referencing that character set. The program...   Read More

Getting Colour ANSI Emulation to Work Properly When Connecting to a BBS With Telnet Under Linux

I have noticed that the number of people interested in using telnet to access BBSs seems to be growing, which I'm really pleased to see. However lots of people seem to be having trouble getting colour...   Read More

Setting up a Beowulf Cluster Using Open MPI on Linux

I have been doing a lot of work recently on Linear Genetic Programming. This requires a great deal of processing power and to meet this I have been using Open MPI to create a Linux cluster. What fol...   Read More

My Top 10 Classic Text Mode BSD Games

Recently, I have been playing a collection of text mode games that were commonly found on Unix Systems during the 70s and 80s. These games are surprisingly playable and, for me, they really show that ...   Read More

Running 4K FORTRAN on a DEC PDP-8

4K FORTRAN was a subset of FORTRAN II and was the first high-level language available for the DEC PDP-8. It consisted of two parts: the 4K FORTRAN Compiler (nicknamed "Fivetran") and the 4K ...   Read More

A Quickstart Guide to Editing Paper Tape With the Symbolic Tape Editor on the DEC PDP-8

Before re-writable storage devices, such as tape drives, become popular for the DEC PDP-8, owners had to rely on paper tape. This was fine for loading programs on pre-punched tape, but left the proble...   Read More

Book Review: Electronic Brains: Stories from the Dawn of the Computer Age by Mike Hally

This is an interesting history of computer development around the world during the 1940s and 50s.  The book grew out of a radio series on BBS Radio 4 and contains lots of original material gained from ...   Read More

Emulating a DEC PDP-8 with SimH

The DEC PDP-8 mini-computer was launched on 22 March 1965 and was a great success. It was fairly cheap for the day and could easily be expanded. What attracts me most to the PDP-8 is its simple desig...   Read More

Improving the Standard SUBLEQ OISC (One Instruction Set Computer) Architecture

When I first came across The SUBLEQ URISC (Ultimate RISC) / OISC (One Instruction Set Computer) Architecture, I really liked the beauty and simplicity of the design. However, I have now been experimen...   Read More

Connecting a Parallel Printer to a Modern Linux Machine Using a LogiLink USB to Parallel Cable, D-SUB 25pin

I have a number of older printers that I would like to connect to my modern machine, but have been unable to do so because my computer doesn't have a parallel interface. After searching the internet f...   Read More

An Introduction to Corewar

I remember reading about Corewar roughly 20 years ago and thinking that I will have to have a go at that when I get the time. As often happens in life, things got in the way and I only recently manage...   Read More

The Smallest Communication Program in the World?

I was going through a backup of my dos machine, taken in 1998, and came across some source code which I haven't seen for a long time. It was great to see that old code, and I must set-up a machine so ...   Read More

Hello, World! in SUBLEQ Assembly

After writing a previous article: The SUBLEQ URISC (Ultimate RISC) / OISC (One Instruction Set Computer) Architecture. I was left thinking that I should really have given at least a "hello, world...   Read More

An Introduction to Test-Driven Development

For the past 6 months I have been using Test-Driven Development (TDD) on a new project. It has made such a difference to the quality of my code, that I feel I just have to share it's benefits with tho...   Read More

The SUBLEQ URISC (Ultimate RISC) / OISC (One Instruction Set Computer) Architecture

I have been interested in the limits of RISC (Reduced Instruction Set Computer) architecture for a while and recently came across OISC (One Instruction Set Computer) \ URISC (Ultimate RISC) archite...   Read More

xAce - A Jupiter Ace Emulator for Unix (Patched to correct garbled display)

The only Jupiter Ace emulator that I found, which would work under Linux, was written by Edward Patel and is called xace. There is also a Windows version available, but I don't know anything more abou...   Read More

Book Review: The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks, Jr.

This book, written in 1975, offers a fascinating insight into the software engineering process used at that time. The author draws from his experience as project manager for the IBM System/360 and OS/...   Read More

Bouncing Babies

Bouncing Babies is one of the first games I remember playing on an IBM PC Compatible. I recall looking at this funny game and thinking that it really was a strange concept. It was released as Sharewa...   Read More

Chinese Man Spotted On Tissue

It really is funny the things that we spot sometimes. Most of us must have looked up at the clouds and spotted animals, houses and other imagined objects. We are also used to the occasional news repo...   Read More

My Top 10 Commodore 64 Demos

There are so many great demos for the Commodore 64 and the demo scene is still thriving. Surprisingly there are even new effects being created for this machine. I have spent many hours going through ...   Read More

Beneath a Steel Sky, My Favourite Graphical Adventure Game

Beneath a Steel Sky was released for the PC in 1994 by Revolution Software. It was received well and has gone on to be considered a cult classic. It uses the Virtual Theatre engine which was first us...   Read More

How to File Good Bug Reports

The real advantage of Open Source software is that many people from all around the globe can work to make it better. This means that bugs can be detected and often fixed much more quickly than with cl...   Read More

Using ScummVM to Play Classic Adventure Games

ScummVM is Virtual Machine, that allows you to run adventure games created for a number of game creation engines. This is a great way of playing those classic adventure games that you loved so much, o...   Read More

Writing my First Program to Toggle in to the IMSAI 8080

I have long been fascinated with entering programs into computers by methods not involving a standard keyboard and monitor. This interest was peeked by my last article: Using the latest z80pack, versi...   Read More

Using the latest z80pack, version 1.17, to emulate an Altair 8800 or IMSAI 8080 using the new graphical FrontPanel

Udo Munk has just released the latest version of his z80pack emulator, version 1.17, which now includes John Kichury's FrontPanel library. As well as being a superb emulator to run CP/M on, it now giv...   Read More

Is this steamer really not to be used by girls?

I was preparing the walls of our nursery on the weekend, ready for the arrival of our first child in December. I was about to start steaming off the border and thought I'd better look at the instructi...   Read More

Using DOSBox to Run DOS Games and Applications

There were some brilliant games and applications released for DOS, and some of the games such as Command and Conquer are still very playable. There are a number of options to play these games today, f...   Read More

Installing the HI-TECH Z80 C Compiler for CP/M

My language of choice is C and I am currently getting more involved with the CP/M operating system. I have therefore decided that it would be nice to have a C compiler working under CP/M. There are a...   Read More

Installing ZDE 1.6, a programmers editor for CP/M

To do any serious programming under CP/M, the first thing you need is a good programmers editor. There aren't many in the archives, but I have tried most of them and found ZDE to be the best. It is s...   Read More

Setting up z80pack to Create an Emulated CP/M System

I have decided to try out some old CP/M software, but need something to run it on.  I could either do this on my Commodore 128 or through emulation.  Unfortunately the 1571 disk drive for my Commodore ...   Read More

PDP-8 in 'Three Days of the Condor'

I watched 'Three Days of the Condor' the other night and loved seeing what I believe is a Dec PDP 8/E being used. Also featured in connection with this machine was a DecWriter, paper tape reader and p...   Read More

Book Review: Fundamentals of Operating Systems by A.M. Lister - Second Edition

It was fascinating to read this book from 1979 and see how operating system design was viewed then, compared to now. The biggest change being the shift in importance from batch processing to the inter...   Read More

How to share an SSL certificate and still use cookies

Website hosting companies often provide a shared SSL certificate, but this presents the web designer with the problem of how to use it for a site that uses cookies. I have read many people say that th...   Read More

Is Cobol Really Understandable After 14 Years?

COBOL has been in the news quite a lot recently and I have been reading that there are still huge amounts of COBOL code running and being written. This led me to wonder why this language was still bei...   Read More

Sign up to get new articles straight to your inbox.

Delivered by FeedBurner