Skip to content

A repository for code I wrote in realmode assembly

License

Notifications You must be signed in to change notification settings

dusxmt/realmode_code

Repository files navigation

I've been delighted to have recently acquired a machine capable of running DOS
natively, which re-ignited my interest in realmode 8086 assembly programming.

This repository contains a few programs I wrote, mainly for fun.  The code
is written with an XT-class system in mind, and so it should work even on the
oldest of IBM PC compatibles.


The nasm dialect of 8086 assembly is used.  To assemble any of the files within
this directory, run:

  nasm -f obj FILE.ASM

You can aquire a copy of nasm here: https://nasm.us/


Additionally, you will need a Relocatable Object Module Format (OMF) linker to
create an executable file out of the assembled object files.

The linker I use personally is Anthony A.J. Williams' ALink, which you can
find here: http://alink.sourceforge.net/


Description of the individual code files:

  TEMPLATE.ASM - Template, inspired by the Art of Assembly book and NASM docs.

  HELLO.ASM    - Prints a message and the command-line arguments.

  DOSSYSCL.ASM - Routines to access DOS system calls in a well-defined manner,
                 and a strerror implementation.  Only a handful of system calls,
                 the ones I've needed thus far, are described here.

  DOSSYSCL.INC - Additional information regarding the above file.

  UTIL.ASM     - Various useful routines.

  TESTUTIL.ASM - Test program for the routines in the above file.

  B64.ASM      - Routines to encode and decode data to/from Base64.

  B64_CMDL.ASM - Program to encode the command-line arguments into Base64,
                 and decode them back.

  B64_FC.ASM   - Base64 file encoding and decoding utility.  This version
                 doesn't allow spaces and other separators in the input when
                 decoding Base64 data, and doesn't output any when encoding.

  B64_FC2.ASM  - An updated version of the above utility that does accept
                 spaces, tabs, newlines and other forms of blank spaces within
                 Base64-encoded input files, and generates its Base64-encoded
                 output (at most) 76 digits per line.

  SHA256.ASM   - SHA256 hashing module.

  SHA256_P.ASM - Test program that generates a SHA256 hash for the provided
                 command-line arguments text.

  SHA256_F.ASM - SHA256 file checksum utility.

About

A repository for code I wrote in realmode assembly

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published