Back to 
Home Page
 
Curriculum
Personal Achievements.
 
Research Interests
I am currently 
writing a PhD Thesis.
 
PC
Programs I wrote
for my PC.
 
RC Flight Simulator
Learn to fly your Radio 
Control model airplane.
 
Spectrum
Published programs 
I wrote for my Spectrum
 
Electronics
Electronic Circuits 
I designed and built.
 
  Personal Bookmarks
 
 VRML Model of my face!
 
 PC
 The programs I wrote for my PC.
 
 
This page contains a selection of programs I wrote  for PC. Most of them include source code which you can use and misuse at will. 
 
My Programs
 
3D TANK
Huffman Compression
3D FLIGHT
Keyboard Handler
Aeroplane Simulator
Lines
3D Spheres
PlayTGA
Remote Level Monitor
FIR Demo
Fourier Demo
Texture Mapping
 Voronoi Diagrams
 
 
 
 
3D TANK (Stereo) 
3D Graphics Stereo Demo (1994). 
Download Source Code 3D TANK  (44 Kb) 
Download Only Program 3D TANK  (36 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

Using a pair of magnifying lenses at 15 cm from the screen you can focus your eyes on the screen. A three-dimensional tank will appear in front of you. Use the keyboard to move around and fire at will. 

To control the tank use the keys: 
 

q/a  Forward/Backward 
o/p  Turn Left/Right 
SPACE  Fire (sorry, nothing to aim at yet.) 
 
3D TANK
Stereo pair. Experience the effects of 3D in your computer!
 
 
  
3D FLIGHT (an early version of my Flight Simulator
Game like aeroplane simulator v1.1 (1996). 
Download Source Code 3D FLIGHT  (47 Kb) 
Download Only Program 3D FLIGHT  (35 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

Demonstrates basic use of aeroplane control surfaces, radar, compass and altimeter. 
This is not a physics based simulator, but a game like aeroplane. The one you really want to see is here

For your first lesson get familiar with Aileron, Rudder and Elevator controls. Then press 'Q' to move forward. Press 'SPACE BAR' at any time to return the aeroplane to the start position. 
 
The keys to control the aeroplane are: 
 

Key  Control Surface  Action 
LEFT, RIGHT  Ailerons  Roll 
W, E  Rudder  Yaw 
DOWN, UP  Elevator  Pitch 
Q, A  Thrust  Engine 
 
 
F1  Help 
ESC  Exit 
SPACE BAR  Return to start position. 
 
On the screen the basic instruments of an aeroplane: 
 
Radar  Shows position of aeroplane. 
Compass  Shows orientation of aeroplane. 
Altimeter  Shows altitude of aeroplane. 
 
3D FLIGHT
Game-like flight. Have some fun flying around! 
 
3D Spheres 
Demo (1997) 
Download Source Code 3D Spheres  (433 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

Shows 45 different spherical meshes. The scene can be viewed in stereo. 
Spheres and the view point can be controlled by the user. 

3D Spheres
 
3D Spheres
Stereo view of triangular mesh. Use with red/green glasses.
 
Remote Level Monitor 
Demo (1995) 
Download Demo Remote Level Monitor (74 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

This project involves the demonstration of a remote control system using a Data Acquisition 
Card and a PC. 
This project was realised by 4 people in collaboration including me. 

 
 
Fourier 
Demo (1996) 
Download Source Code (35 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

Performs a Fourier transform of a function, then the Inverse Fourier Transform, and presents the results graphically. 
 
 
 

Huffman Compression Utility 
File compression utility based on Huffman compression method (1996) 
Download Source Code (34 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

This technique achieves about 200% compression for text files (zip and arj achieve 800%). So if you were wondering why the downloadable files in my page are not compressed with my compressor, there you have the answer. 
 

Syntax 

huf <command> <input file> [<output file>] 
command: 
     c  compress 
     e  expand 
input file:  File name to be compressed or expanded depending on command. Wildcards accepted (e.g. *.*) 
output file: Optional target file name, only when compressing. 
Examples 
huf c command.com         (default output will be command.huf) 
huf c *.* all.huf 
huf e prog.huf 
 
Keyboard Handler 
Demo (1995) 
Download Source Code (22 Kb) 

Compiler:  Borland C++ 3.1 
OS:        MS Dos 

Based on the article "Programming the Keyboard" in PCGPE. 
This program shows how to read simultaneously several key status in MSDos. 
 

Lines 
Game for Windows 95 (1997) 
Download Source Code Lines  (168 Kb) 
Download Only Program Lines  (130 Kb) 

Compiler:  Visual C++ 4.0 
OS:        Windows 95 

On each turn the player must draw a new line between two dots in the grid. 
The player that completes more cells wins. 

Lines Options
Playing against the computer is not easy!
 
Lines
There's still one line you can draw without giving away any precious cell. Can you spot it?
 
Lines
Fight for the cells!
 
 
 
PlayTGA 
Targa image file display utility (1996) 
Download Source Code PLAYTGA (147 Kb) 
Download Only Player (93 Kb) 
 
Compiler:     Borland C++ 3.1 
OS:           MS Dos 
 
Syntax       PLAYTGA <filename> 
 
<filename> must be a Targa (TGA) file. 
 
You will need a SVGA video card VESA compatible (most of them are). 
Five screen modes are selectable to view your image. 
 
Mode  Resolution 
115h  800 x 600 16M 
112h  640 x 480 16M 
225h  512 x 384 16M 
215h  320 x 240 16M 
10Fh  320 x 200 16M 
 
 
FIR 
Demonstrates a Finite Impulse Response Filter 
Download Source Code (34 Kb) 

Compiler:     Borland C++ 3.1 
OS:           MS Dos 
 

The FIR filter used is      Y[n] = X[n] - 0.6 * X[n-1] - 0.4 * X[n-2] 

Two selectable types of function can be filtered and displayed. 

Function 1 : X[n] = Offset  +  n * Slope  +  Amp * sin(n/20) * exp(-n/Exp 

For function 1 the following parameters can be increased or decreased pressing the corresponding key: 
 

Offset  CUR UP/DOWN 
Slope  W/S 
Amplitude  Q/A 
Exp  E/D 
 

Function 2 (PULSE): X[n] = Offset  +  Amp * ((n>t1)&&(n<t2))  
For Function 2 the following parameters can be increased or decreased pressing the corresponding key: 
 

Offset  CUR UP/DOWN 
Amplitude  Q/A 
t1  W/S 
t2  E/D 
 

The Sample Rate can also be modified with Cursor LEFT/RIGHT. 

FIR Demo
Parameters can be modified and results are displayed immediately.
 
FIR Demo
Filtered pulse.
 
 
 
Texture Mapping 
Demonstrates Affine Texture Mapping. (1997) 
Download Source Code TEXMAP (155 Kb) 
Download Only Program TEXMAP (96 Kb) 

Compiler:     Borland C++ 3.1 
OS:           MS Dos 

Syntax       TEXMAP <file.TGA> 

The selected source triangle on the TGA image will be mapped onto a target triangle on the screen. 
 
Use the Mouse to move the vertices of source and target vertices: 
 

Left Button  Click on target vertices to drag target vertices. 
Right Button  Click on target vertices to drag source vertices. 
 
Use the Keyboard for extra functionality and fine control 
 
SPACE  Clear Screen 
Save screen to file <screen.tga> 
0/1/2  Select vertices 0/1/2 
q/a  Move vertices Up/Down 
o/p  Move vertices Left/Right 
+/-  Zoom original image 
 
Affine Texture Mapping
Starting position of triangles.
 
Affine Texture Mapping
Source triangle has been chosen to include tree.
 
Affine Texture Mapping
The tree is mapped onto target triangle on the screen.