Borax Mans Pad
  • About
  • Blog
  • Articles
  • Levels
  • My Computing Setup
  • Programs
  • Links

Assembler Programs by Borax Man

This is a selection of assembly programs that I have written. There are quite a few that I’ve written which aren’t here, this is just a small subset.

There is something enjoyable and satisfying about

Dos Assembler Programs
Linux Assembler Programs

DOS

These were written from MS-DOS, mostly back in the late 90’s and early 2000s, but a few more recently.

Keyboard Fun!

Kbfun
Keyboard fun
This flashes the lights (capslock, numlock and scrolllock) on the keyboard by manipulating data in the BIOS memory area which stores the keyboard status. The source code is for MASM

Assembler source COM file

CGA Ball

A very basic demo of a bouncing ball for CGA graphics, using the 640x200 monochrome video mode. This will run on any 8086 processor or greater.

Assembler source COM file

This version is the same program, but stripped back to compile to a binary under 200 bytes. Part of the fun of assembler is making your executables as small as possible.

Assembler source COM file

Bumpmap

BMAP
Bump Map Demo
A scrolling bumpmap generated procedurally. The demo is slow because it copies from video memory to video memory, it would be faster to keep the image in a buffer in ram and copy that over and over. Perhaps I’ll get to fixing that, it is an easy fix, but the need to improve this isn’t really there.

Assembler source EXE file

Chain

Chain
Chain Demo
This is the same program, but modified to make the bumpmap appear more like a ‘chain’

Assembler source EXE file

XMS Demo

Nothing more than an example of how to use XMS memory.

Assembler source EXE file

Adlib

Nothing more than an example of how to produce a note through the OPL3 FM synthesis chip. The code isn’t well exemented though.

Assembler source COM file

Interrupt Demo

A demonstration of interrupt driven program. This creates a custom interrupt handler which is triggered by the PC timer.

Assembler source EXE file

COM Demo

COMDEMO
Com Demo
A more recent program of mine, an example of a COM file. This demostrates the use of the PC speaker, taking input and use of screen memory. It just asks for text and displays it multiple times in dazzling colour. Nothing special, but my younger child actually likes playing around with this. The source code is for FASM.

Assembler source COM file

Star Scroller

STARSCR
Star Scroller
A VGA star scrolling demo. I tried to emulate some depth of field to this. Will run on any 286 with a VGA card. FASM source code.

gitgud link

Smile Bounce

SmileBounce SmileBounce

This is 6502 assembler, a different chipset which is simpler than the x86 architecture, and quite enjoyable to program for, because of its simplicity. Though at times you can wish this CPU had multiple and divide instructions. This program is written specifically for the VIC 20, which was a computer I had for a short period in the early 90s. I still have one now, although it is in need of repair. The VIC 20 only has 5K of RAM, a fairly low graphics resolution as compared to other microcomputers of the 80’s and 90’s and basic sound. Nevertheless, this makes it an endearing machine and I had always wanted to write machine code for the VIC 20 or Commodore 64 back in the day but had neither the knowledge or means to do so. Now it is easy so I wrote this demo to explore the capabilities of the VIC, its CPU interrupt system, changing the screen size, something I had no idea could be done until I started this project, sound and graphics.

This just bounces a ball, which you can move with the keyboard, while playing a tune and scrolling a message. It takes up most of the free RAM and demonstrates also self modfying code. It is probably a good example if you want to learn more about the VIC 20.

Compile with ca65.

gitgud link

This is a .PRG file you can load straight into your emulator. If using Vice, you can autostart at the command line with

xvic -autostartprgmode 1 smilebounce.prg

prg file

Linux

wadinfo

Simple program in x86 which lists the directory contents of a wadfile (the data file for Doom engine games)

Compile with gas assembler.

gitgud link

PC Speak 2

Simple demonstration of using the PC Speaker under Linux.

FASM source.

Assembler Source

LPT Console

This program allows you to output single bytes to the parallel port.

GAS source.

Assembler Source

Back to Home


© Dennis Katsonis 2025

GitGud