x86 Assembly Language
In case you didn't know, assembly language is a language close enough
to the machine to give you full control over it, while being far enough
to give you the necessary abstraction so that you don't have to know
all instruction codes and fields by heart.
Back in around 1997 I used to play a lot with x86 assembly on DOS and
Windows and here are some of my finest creations of that time.
3D Functions
3D Functions is a program that lets you display functions like
z=f(x,y) and [x,y,z]=f(p,q), which are basically
2D surfaces in 3D. Time variable can be used to animate the surfaces.
The functions are specified in a C-like language. The program has a
simple "compiler" which turns them into pseudo code it can interpret
at runtime. The program used to run reasonably fast on a 386 CPU with
a 387 FPU.
Download
Fractal Clouds
This program generates 2D noise-based fractals simialar to Perlin noise.
The height map can be customized to produce unique colors. Generated images
can be saved as 24-bit BMPs. An additional option makes the generated
bitmaps wrapping friendly, so that they can be used as textures.
Download
CPUID
The CPUID program uses the cpuid instruction to identify the processor.
It extracts information such as processor type, name, cache size and features.
Download
TextView
TextView is a size optimized text file viewer for DOS. The executable was
squeezed in 201 bytes without any compression. Still, it provides basic navigation
keys and allows smooth per-pixel scrolling in text mode! On Windows this program
must be run in full screen.
Download
3D Julia MMX
This program has been written purely for fun. It uses fixed point arithmetics
on MMX to produce animated
Julia set fractal.
The fractal is generated from a complex
sequence Z(n+1)=Z(n)*Z(n)+C by counting iterations needed to reach
a certain level of the module of Z. C is a variable that changes
in time to produce a different look. The way the fractal is drawn mimics
a 64KB DOS intro Drift.
Download
XM Player
The tiny XM player can be used to play XM modules, originally produced
by FastTracker 2.
The program relies on DirectSound 5, but another subsystem
could be plugged in. It's perfect for small applications written in any language
which intend to play background music.
Download
PC Speed
This program was originally created to measure and compare speed of
different processors, but as they evolved its method became irrelevant.
Now it can serve as an example on how to physically initialize the CPU
in 32-bit mode.
It is a DOS program which switches into protected mode, collects memory
from XMS and sets up all processor structures, such as GDT, etc. It must
be run from real mode (i.e. EMS must not be running).
Download
Win32 Includes
Some of the programs above were written for
NASM, others for
TASM.
Those for TASM use ideal mode and may require the following
set of Win32 headers to compile.
Download Win32 headers for TASM
|