Assembly | |
---|---|
InformationSoftwareGoodies | x86 Assembly LanguageIn 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 Functions3D 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. Fractal CloudsThis 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. CPUIDThe CPUID program uses the cpuid instruction to identify the processor. It extracts information such as processor type, name, cache size and features. TextViewTextView 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. 3D Julia MMXThis 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. XM PlayerThe 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. PC SpeedThis 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). |