Download SectionThis section is provided for programmers
who wish to obtain examples of various various programs. These are written for either the DOS
or Windows platforms. The first selection is the good old DOS stuff, and this needs to run in the DOS mode.
Next I provide selection of examples of Win32 programming using assembly. For these programs you
naturally you run under Windows 95/98, or perhaps even Windows NT; most programs should work but I have not yet
had opportunity to check them out in this enviroment. All demonstations, contained both the source code
and the actual program. The last part contains some useful code from various souces and various authors.
Free Graphics Book
My DOS book "Graphics Programming using Assembly" is now available for free !
So if you are a DOS programmer and want a copy, then just click here to download.
Click here for a synopsis
DOS 16 bit Demonstration Programs
If you want to try out some of the interesting DOS programs that
can be created using assembly, please look at the list of files below and
download any that interest you. All files are in compressed form and contain
both the working program and the source code. They should be executed in DOS
mode. If you want to assemble and link a given program, then it may be necessary
to resolve some "unresolved external references"; these originate from
calling external subroutines within the "GLIB" library. This library
is also available for download, together with full documentation on the
calling procedures of all the contained subroutines. The source for all my
subroutines is contained in my free book
"Graphics Programming using Assembly";
see the synopsis for more details.
- Buterfly.zip Draws a mathematical curve in the form of a butterfly.
- Cuboid.zip A wire frame animation of a rotating cube (in SVGA mode).
- Glib.zip A
graphics library and its documentation, which is required by many of the assembly programs.
A useful Gif viewer for single or multiple images.
Mathematically inverts five orthogonal circles in a reference
circle to produce a beautiful pattern.
Inverts a rectangular array of circles to produce a beautiful geometrical transform.
- Sierp.zip An
interesting variation of the Sierpinski fractal.
- svgainfo.zip A very useful program
which provides detailed information on the installed VBE modes.
Win32 Demonstration Programs
A demo which shows how use the Media Control Interface "MCI" to play back audio-visual or "movie" files with extension "avi".
- Banner.zip This demonstrates two methods of creating an animated banner.
- Bezier.zip This demonstrates how to use the mouse to draws a Bezier curve.
- Butterfly.zip A mathematical curve in the form of a butterfly is created using
- CatWalk.zip A multithread animation demo with a
dialog box for changing the thread priorities and suspending and resuming threads.
- Chaos.zip A set of three demos which illustrate the Lorenz, Rosler and Ikeda
strage attractors. These are interesting examples from the mathematical world of chaos.
- Clock.zip An analogue clock display -
the companion to the digital clock display already in this section.
- Clover.zip A demonstration of the use of graphical regions; this example
uses elliptical regions to create a graphical object in the shape of a clover.
A demo which uses child windows to create slide bars for the setting of the
three primary colours. The final colour is shown in a separate window and the
RGB colour values are shown under the slid bars.
- Connect.zip A graphics demo which uses the mouse to create a diagram
made up from mutiple line sections, each end-point being connected to every other.
- CPUSpeed.zip A useful utility which displays the speed
of your computers processor..
- Curves Two demos which show how to contruct Astroid
and Cardioid curves using geometric and analytic construction.
- Cycle Timer A very useful utility which times
sections of critical code using the RDTSC pentium instruction..
- Devcaps.zip This
is a pair is demos which reveal properties about your video display and any attached printers.
Devcaps1 is an initial simple version and Devcaps2 is a truely useful version with menus which allows interrogation of all relevant
- Dialogs.zip Four modal dialog demos. The first uses
radio buttons to select simple graphics shapes for display and the second shows how to enter text and
integer numbers into an application.The third shows the use of an up/down control to enter integer numbers and
the last shows the use of an up/down control to read in floating point numbers.
- DigClock.zip A useful graphics program which simulates
a "liquid crystal" digital clock.
- Dips.zip A utility for saving and restoring the position
of items on your windows desktop.
- Feigb.zip This demonstrates the onset of chaos in Feigenbaum's period doubling,
or bifurcation diagram.
- Fern.zip An expample of an Iterated Function System
fractal; this builds is the classic Fern fractal.
Two demos which show how to select and and use fonts of different type, sizes and orientation.
A useful demo which uses a dialog to display all the fonts on your system installed on your
- FPLib.zip A Library for
floating point arithmetic, including ASCII to FP, FP to ASCII, and rotation of math space coordinates.
An example "TestFP" is included.
- Grays.zip A trio of programs
which demonstrate the creation of gray scales.
- Header.zip This demonstrates
how to create and use a Windows header control.
- HelpDemo.zip A demo which shows how to create and implement reference and
context sensitive help.
A set of three demos which illustrate methods of
capturing messages from mouse and keyboard events using hooks. The recording and playback of
captured events is covered and also the use of system wide or "global" hot keys.
- HowToScr.zip Most useful documentation on the creation of screen
- Invcircs.zip A fascinating demo
which uses mathematical inversion to transform a rectangular array of circles into a piece of
- Kaleidoscope This is a palette animation of a graphic created by
mathematical inversion of a rectangular array of circles. A dialog box allows the animation speed to be
varied or be set to a static static display.
- LineDemo.zip This shows how to draw lines, rectangles, ellipses etc and also the methods for filling
with colour or a pattern.
- ListView A dialog demo which show how to create and use a listview
- Mandel.zip This demonstrates the classic Mandelbrot fractal, which inspired the search
for the infinite family of these fascinating objects.
A demonstation of a Multiple Document Interface (MDI) program; which allows
multiple instances of text and animation windows.
A demo for menu construction using popup menus. Can be used as a skeleton for new programs.
A graphics demo for the mathematically inclined; it creates orthogonal circles and then proceeds to
invert them, thereby creating a beautiful graphic.
A demo of two colour cellular automata, based on Stephen Wolframs book "A New Kind if Science".
It will display any of 256 possible automata; and individual diagrams can be saved as
bitmaps or be printed out to an attached printer.
A graphics demo which shows how to construct orthogonal circles.
A sextet of palette animation demos; a colour display, a bouncing ball, a text fade, a "fluid in pipe",
an unending tunnel and an animated columns display. Run in a 256 colour video mode.
A useful CD player which demonstrates the use of MCI commands to playback audio CD tracks
for any of the detected audio CD drives on your system. Have fun and give it a try !
A very useful multimedia player which will playback a range of audio files and also
audio-video files such as avi, mov and MPEG. It also has useful controls for changing playback size,
volume and speed. It really is a fun thing to play with !
- PlayMM version 2
An upgrade to the multimedia player, with extra features such as full screen playback for
video and provision for other media devices such as CD, and videodisc and VCR if you are lucky enough to have
A simple demo which sends text and graphics to a line printer.
A pair of demos "PropSht" and "Wizard" which illustrate the use of a property sheet and
a wizard respectively.
- Qhtmdemo.zip A demonstration program for using HTML utility
functions from Russ Freemans QHTM.lib; provides means for viewing, printing and saving HTML files
as bitmaps, plus other functions.
- RandRect.zip A graphics program which draws random
rectangles, with random size and colour.
- RBanding.zip A trio
of rubber-banding programs which demonstrate how to create a line, a rectangle and a circle dynamically using the mouse.
- Registry.zip A couple of programs which
show how you can access data stored in the operating systems registry.
- Rosler3.zip A three dimensional active display of the Rosler Attractor.
- RWaveV1.zip A multimedia demo which provides for the
recording and playback of wave files. Input is via microphone input to the soundcard.
- ScaleText An interesting demo which
shows both how to create logical fonts and how to scale them from a very small to very
large font size.
- ScrHots.zip A dll file which will enable you to provide
"Hot Corner" supprt for your screen savers.
- Scramble.zip A program which scrambles the windows desktop !
Don't worry - the original display is completely restored.
- ShowDib2.zip This demonstrates how to select, display
and print bitmaps. It also shows how we can "cut" a displayed bitmap to the clipboard ready for
pasting into another application, such as a paint program.
- Sinewave.zip A simple graphics demonstration in assembly,
which shows how to write text, draw a curve and play a sound file.
- Sprite.zip A sprite
animation program, which is developed progressively through three separate programs. The last shows a cat
walking across the screen and it talks !
- SSaveKit.zip A screen saver kit which demonstrates how to
create various screen savers ranging from a simple "blanker", though to advanced OpenGL
animations. Also see the section on Screensavers.
- Statusbar.zip A demo on how to create a multipart
status bar with individual colours.
- SWE V1.03 A small but useful text editor, which provides for Edit,
Search, Print, Font change and also incoporates the use of MRU "Most Recently Used" files.
- Sysmets.zip A program to display System Metrics data
(information about window size, cursors, scroll bars, etc) is developed progressively in three versions.
The first show how to utilize the vertical scroll bars to access the data. The second version
adds horizontal scroll bars and the last responds to keyboard input in the form of
An informative demo which shows how to use the Media Control Interface "MCI" to control a CD ROM drive for the playing of audio CD's. It will allow you to
issue MCI commands to open the drive and, play, pause and stop the music, together with other commands which show the status of the device etc. In fact
I have used it as the basis of a working CD player.
An interesting program for switching tasks or windows using an Intelipoint Wheel mouse. It also
demonstrates how to install and uninstall a program using a setup program, and how to hook the
wheel mouse interupts using using a dll file.
*** Corrected *** and now shows buttons in colour. A useful demo which shows how to create and use toolbar buttons to control a program. Tooltip capability is also provided.
- TrackRec A couple of demos which show
how to use a tracking rectangle to move a bitmap of a cat within a window.
This is a very useful Screen Capture utilty which will allow capture of images from the desktop, from selected
windows, from the client area of windows and selected areas of any window. Captured images can be saved
as bmp files, they can be printed and they can be saved to the Windows clipboard.