Published articles
Circuit Cellar, November 2012 |
DIY Automated Component DispenserThiadmer Riemersma's DIY automated component dispenser is a contemporary solution to a problem that has frustrated engineers for decades. The MCU-based design simplifies component management and will be a welcome addition to any workbench. Update
The "construction manual" was expanded since publication of the article and
a few sections were clarified. The new construction manual is in the updated
self-installing archive (for Microsoft Windows) with all software, firmware,
design files and documentation.
|
ISBN: 1-59863-806-8 March 2009 |
Chapter 10 - Axonometric Projections: A Technical OverviewThe article Axonometric projections - a technical overview is part of this compilation of advanced programming articles. (The on-line article has been updated since the publication.) |
Circuit Cellar, September 2007 |
Embedded ScriptingWrapping up the feature article section of the magazine is Thiadmer Riemersma's article about embedded scripting. He explains how to harness the power of the Pawn scripting language. As you'll see, it's possible to extend your firmware without changing it. |
Dr. Dobb's Magazine, August 2004 |
Building a Callout ControlThiadmer's balloon-style Windows control is configurable for many purposes. The article "Building a Callout Control" is available on-line courtesy of Dr. Dobb's Journal. ErrataThe time-out feature in the callout control does not work in the published version (there is a fix for it). To make up for this annoying bug, I have improved the control to support a limited subset of HTML tags. |
Windows Developer Magazine, June 2002 |
Packing DLLs in your EXEDLLpack is a tool that allows DLLs to be embedded inside an executable and extracted the first time a function from the DLL is called. The article "Packing DLLs in your EXE" is available on-line courtesy of Windows Developer Magazine and Dr. Dobb's Journal. ErrataWhen speaking of the function dpUnloadDLL(), the article says: "I
copied the functionality of __FUnloadDelayLoadedDLL() to unload (and delete)
all DLLs if you pass NULL for its filename parameter". It turns out,
however, that __FUnloadDelayLoadedDLL() cannot take a NULL parameter,
and therefore, neither can dpUnloadDLL(). |
Dr. Dobb's Journal, May 2002 |
Image Scaling with BresenhamThe graphics algorithm that Thiadmer presents here is quick, produces a quality that is equivalent to linear interpolation, and can zoom up and down. The article "Image Scaling with Bresenham" is available on-line courtesy of Dr. Dobb's Journal. ErrataCorrections, improved figures and additional notes appear in the errata for "Image Scaling with Bresenham". A sidebar in the original manuscript (not printed in the Dr. Dobb's article) about quick colour averaging is available on-line. |
Windows Developer's Journal, Dec 2000 |
Rebasing Win32 DLLsThe "D" in DLL stands for "Dynamic", and that refers in part to the fact that the operating system may have to load your DLL at a different base address than it was linked for. This article explains why that's an event worth avoiding, and provides a utility that tries to automatically base your DLL at an address that won't require dynamic relocation every time the DLL is loaded. The article "Rebasing Win32 DLLs" is available on-line courtesy of Windows Developers' Journal and Dr. Dobb's Journal. ErrataThe article mentions the "-B:address" option for Borland's TLINK32 linker. Next to setting the image base address, the -B: option also strips off the relocation table, and it should therefore be avoided. The newer linker by Borland, ILINK32, has the -b: option (lower case "b") that sets the image base address without stripping off the relocation table. |
Windows Developer's Journal, Aug 2000 |
Detecting Vertical RetraceFor animation with no annoying "tearing", you really need to avoid drawing to the graphics adapter when the CRT is also reading from the graphics adapter. You can't just read VGA registers directly to sync up with the vertical retrace, though —you really need a device driver, as this article shows. The reasoning and some of the solutions behind this article are in the paper: "Detecting Vertical Retrace in Microsoft Windows". The pre-compiled drivers that the article refers to can be downloaded from that page as well; the source code for the drivers is available from Windows Developers' Journal. |
Dr. Dobb's Journal, Oct 1999 |
The Small Scripting LanguageSmall, described as "Small C" without the "C", is a typeless, 32-bit extension language with a C-like syntax that features fast execution speed, stability, simplicity, and a small footprint. The article "The Small Scripting Language" is available on-line courtesy of Dr. Dobb's Journal. The Small language and its support code has improved considerably since the article was printed, and it has now been renamed to pawn. You can find out all about pawn at its own page. |
C/C++ Users Journal, Dec 1998 |
A Balanced Dithering TechniqueDithering with just one neighbour doesn't sound very helpful —unless you're clever about how you visit the neighbours. The article "A Balanced Dithering Technique" is available on-line courtesy of C/C++ Users Journal and Dr. Dobb's Journal. The article was based on two papers on this site: "drawing the Hilbert curve" and "Riemersma dither". Refer to those papers for up to date information on the new dithering approach. |










