Quozl's Open Source - C

Quozl works in outback Australia as a firmware and test engineer for a non-profit in Miami that makes laptops for children. When he's not doing that, he writes programs and makes electronic devices, and a few other things.

This site is where he publishes the stuff. Each item is given colour-coded categories of interest that may help you to find related items. It was never intended to be a blog, though it may look like one. It even has an RSS feed:

| top | all articles in one page | summary by date | summary by category |

Articles in Category C

Netrek - Vanilla 2.19.0 released

C Programming X-Windows Programming Network Programming
New version of the Netrek Vanilla Server, with many changes.

(6 December 2016)

Revalidating PIC 16F84 tools

PIC Microcontrollers Linux C Programming
Ye ol' doorbell was uncovered in a lab cleanup, and one wondered if it was still possible to program it after six years. Also, checking out the move from assembler to C.

(31 August 2013)

Netrek Client COW 3.3.1 released

C Programming X-Windows Programming Network Programming
Quozl has just released another version of the Linux Netrek Client, with many changes. Never played Netrek? Now's the time to learn.

Pick your flavour. If you've never played, try:

But if you are a regular, try:

(18 October 2011)

Netrek - Vanilla 2.18.0 released

C Programming X-Windows Programming Network Programming
New version of the Netrek Vanilla Server, with many changes.

(18 June 2011)

Netrek - Vanilla 2.17.0 released

C Programming X-Windows Programming Network Programming
New version of the Netrek Vanilla Server, with many changes.

(2 September 2010)

Netrek - Vanilla 2.16.0 released

C Programming X-Windows Programming Network Programming
New version of the Netrek Vanilla Server, with many changes.

(1 September 2009)

/dev/port to /dev/parport0

Linux C Programming Electronics
So you've got an old program using a parallel port on Linux, but it uses /dev/port or direct port access instead of /dev/parport0. Why worry? Because the old method doesn't let you use PCI or USB parallel ports.

Quozl had to fix it. Publishing it in case somebody needs it. Check out the change from k74.c to k74-ppdev.c in my repository.

(19 May 2009)

Kernel Patching to Fix Audio Socket Electrical Damage

Linux C Programming Electronics
Laptop speakers stopped working. Only the right channel of the headphones remains. But using a very old driver made the speakers work. Turns out electrical damage from an attached sound system broke the headphone detection. The operating system was faithfully turning off the amplifier. Software fix to the rescue ... Update: a remastered patch for alsa-driver-1.0.20.

(18 May 2009)

Netrek Client COW 3.2.4 released

C Programming X-Windows Programming Network Programming
A new version of the Linux Netrek Client, with many changes. Never played Netrek? Now's the time to learn, given the active development team.

Some of the changes are:
  • play, fixed inability to fire a stream of eight torps when in TCP mode,

  • play, fixed a delay in responding to keyboard and mouse events,

  • clue play, display mid-galactic messages relating to INL mode games, including pregame, pause, and time left in game.

  • metaserver list window, changed default metaserver mode to UDP,

  • graphics, menu styles adjusted to remove thick white lines,

  • graphics, finished full screen and camera support,

  • login, fixed delay,

(16 July 2008)

Xtank 1.3f for 800x600

Linux C Programming X-Windows Programming
Remember Xtank? Contributions are sought.

Quozl had packaged Xtank 1.3f for Debian GNU/Linux 3.0 (Woody) back in 2001, and for 3.1 (Sarge) in 2004, modified for 800x600 monitors. Now contributions are encouraged against the source repository ... there are a few opportunities to fix things ... the threading, the robot programs. Learn how to use Darcs and then send Quozl patches.

The 800x600 style 2004 binaries: add the following line to your /etc/apt/sources.list file:

deb http://quozl.linux.org.au/xtank ./

... and then

apt-get install xtank-north

(7 July 2008)

Human Interrupt Request Lines

Linux C Programming Electronics
As a software engineer, Quozl often sees himself as part of one great big system, in which he is a component subsystem, along with whatever computer he is using.

But in a reactive role, where most of the time is spent responding to one interrupt after another, one needs a way to service these human interrupts. Most people seem to do it with telephone ringers, text message alert tones, pagers, or popup windows. Focus stealing is annoying. Lose of concentration more so.

Hence the TCP/IP Distributed LED Mimic Panel, consisting of an array of eight LEDs driven from a parallel port that sits on the desk, and a set of spare computers around the house with displays that show a graphical version of the same panel.

(16 April 2008)

tcpxd - Another TCP/IP Generic Relay

Linux C Programming Network Programming
Update: now available as a darcs repository

Security update for tcpxd, version 1.4 fixes a vulnerability to crafted reverse DNS names.

Quozl had checked out netcat and numerous other TCP/IP relays, but none had all the features he needed, so he rolled his own. This one is optimised for minimal process count and maximum performance for X connections.

(20 February 2006)

Distributed Compressloop

Linux C Programming
Quozl had some fun reworking Rusty's compressloop code to distribute the compression of Knoppix ISO images across a number of antique computers, since there wasn't anything faster available.

(17 July 2004)

Script-Friendly TCP/IP Server Tester

Linux C Programming Network Programming
Quozl wrote a tiny program that tests a TCP/IP service by attempting a connection and then reporting to standard output. No data transfer is done. It is intended for use in scripts for testing availability of critical services, as it generates an easily parsable output along with meaningful status codes.

(12 October 2003)

Netrek Vanilla Server 2.9pl8 Released

Linux C Programming Network Programming
Quozl released version 2.9pl8 of the Netrek Vanilla Server. This release pulls together changes made by the team during the previous league seasons, and is the first release since April 2001. Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek.

(6 December 2002)

Kitsrus Telephone Call Logger

Linux C Programming Electronics
Two Linux or UNIX programs for the Telephone Call Logger kit 164 sold by Kitsrus. Includes a logging daemon (k164d) for unattended use, and a GTK+ based GUI (k164).

(16 December 2001)

GTK+ Focus Watch

Linux C Programming X-Windows Programming
Asks your X server which window you are using and uses the information to charge your labour to different time tracking tasks. Useful for people who want to figure out which windows they are spending their time in, or those who need to fill out a timesheet to get paid.

Stable release 1.0, two years after initial development release.

(26 November 2001)

Linux Speedometer, Odometer, and Trip Computer

PIC Microcontrollers Electronics Linux C Programming
Implemented on a 386/25 8Mb DECpc laptop, this Linux application attaches to a PIC 16F84 microcontroller which is then attached to a vehicle speed sensor. The program displays current speed, distance travelled, and allows the marking of waypoints and the calculation of distance to the next town.

Update: adjustments for higher sampling rates, and a schematic contributed by a reader.

(19 October 2001)

Netrek Vanilla Server 2.9pl7 Released

Linux C Programming Network Programming
Quozl released version 2.9pl7 of the Netrek Vanilla Server. This release pulls together changes made by the team during the previous league seasons, and is the first release since June 2000. Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek.

(23 April 2001)

Linux Halt Beep

Linux C Programming
Quozl had an old 486/100 that was shutdown daily, but it normally had no monitor attached. He needed a way to tell that it was ready to be powered down. This patch against 2.2.12 adds a small fragment of code to generate a descending tone sequence just after the "Power down" message.

(The function kd_mksound() from drivers/char/vt.c was used. This function starts the tone generation and normally schedules a timer to turn it off. Since the timers do not run at this point, the duration of the tones had to be set using msleep() macro calls.)

Since writing this, Quozl has been told that it could have been done in a process executed after the disks are unmounted. Oh well. Not half as much fun! Here's how, on Debian ...

  1. create a file /etc/init.d/beep containing the sound effect, for example:

    #!/bin/sh
    echo -n "\007" > /dev/console
    sleep 1
    echo -n "\007" > /dev/console
    sleep 1
    echo -n "\007" > /dev/console

  2. link it to the run level 0 so that it executes on shutdown

    # cd /etc/rc0.d
    # ln -s ../init.d/beep S85beep
Got too many machines shutting down? Consider the Debian package morse, which will let you emit a morse code signal identifying the machine.

(14 November 2000)

Videopad Base Station Protocol Daemon

Electronics Linux C Programming Network Programming
Quozl is releasing under the GNU Public License code that he wrote to interface a Linux system to a Granite Communications Base Station BS5, an exotic device that talks over radio to a Videopad VP5 hand-held LCD keypad terminal.

(11 July 1999)

Netrek Vanilla Server Administration GUI

Linux C Programming X-Windows Programming Network Programming
Quozl leads the Netrek Vanilla Project, an open source game server for the game of Netrek. One of his contributions to this project is gum, a GUI front end to the server configuration files. It was implemented using GLADE on GTK.

(1 February 1999)


quozl@us.netrek.org