Sierra Wireless USB Modem Backport

I backported the Sierra Wireless USB modem driver from kernel 2.6 to 2.4(.26) while employed at ZetaDisplay AB. This driver was later submitted to LKML but was never included since 2.4 was in a phase where only stability and security patches were being accepted.

You can get the latest version of the patch from ZetaDisplay’s open-source section for Linux 2.4 modules.


AdaOpenGL is a thin Ada binding to OpenGL that I wrote as part of a school project. I have not had time to update it lately but the latest version should still be useful as it is based on OpenGL 1.4. The project is hosted at Sourceforge and can be found at



This was an old school project of mine which sadly I never finished. It was intended to be a terrain rendering engine which would allow you to visualize very large masses of terrain with an accuracy of +/- 1 metric meter based on accurate geographical data. As I cannot recall the actual name of the engine I decided to call the tar ball “AdaTerrainEngine“. I think my original intent was to release this code under the LGPL so that is the license I went with now.

During the development of this project I quickly realized there were no good OpenGL implementation available for Ada at the time and that is why I created the AdaOpenGL project.



AmiScrobbler is a (formerly Audioscrobbler) plugin for AmigaAMP and AmiNetRadio.

The source code is licensed under an LGPL license and includes source code from other projects not written by me. Check the AUTHORS file.



This is a microkernel/operating system I developed for the Pegasos platform back in 2004/2005. It was intended to provide a lightning fast TCP/IP stack for a networking product I was working on at the time. The project was eventually cancelled and the need for CrabOS disappeared.

CrabOS consists of the following components:

  • badger, a bootloader which is responsible for loading the kernel image from SmartFirmware
  • crab, the microkernel
  • init, which is the process that takes over when the kernel is done and is responsible for bringing up the rest of the operating system
  • pager, manages memory pages, inspired by how the L4Ka::Pistachio microkernel manages memory

The name CrabOS comes from an internal joke stemming from one of my codevelopers on the networking project.
I’m releasing the source code under a BSD-license.



Loader is just a modified version of badger from CrabOS which demonstrates how to write applications that can be loaded from SmartFirmware.


Xenox is an advanced version control system (VCS) that I wrote together with some friends at the university as an assignment in a database course. The system is implemented in Java 1.3.1 and has a PostgreSQL backend (although you can easily replace the backend by writing a driver for another system). Sadly we never quite completed this project as it lacks support for creating a diff between three files. It should be fairly simple to finish it but it died due to a lack of interest.

Xenox is also hosted on Sourceforge and can be found at