Skip to content

Hackipedia DOSLIB, a general collection of useful libraries for writing MS-DOS software

License

Notifications You must be signed in to change notification settings

joncampbell123/doslib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

*** NOTICE: This project will not support Windows 10! *************************

This project will explicitly not support Windows 10. Do not submit bug reports
or patches regarding Windows 10, they will be rejected. Patches and bug reports
for Windows 8 and earlier are still welcome.

*** NOTICE: Win32s support *****************

Win32s binaries compiled from this project will NOT run under
Windows 3.1 unless you use the latest version of the Open Watcom
v2.0 compiler. Earlier versions referred to symbols that don't
exist and make assumptions about the stack in ways that don't
pan out in Windows 3.1 (stack check fail).

*** Support ********************************

If you would like to help fund development, and the videos I produce about
MS-DOS, feel free to subscribe to me on Patreon:

    https://www.patreon.com/thegreatcodeholio

Your contributions help fund video production about MS-DOS and the
purchase of MS-DOS hardware and software to test and develop this
code. Any support is welcome.

********************************************

This is a collection of source code intended for DOS and DOS-level
use. It is intended to be used in other open source projects as well
as a learning tool for programmers who may want to learn hardware
level programming and low level details of the MS-DOS PC platform.

This code is designed to work with almost any commodity IBM PC/XT/AT/etc.
hardware out there, though most of it is written primarily to work with
mid 1990's Pentium-class hardware, or older, all the way down to the
original 8088-based PCs.

There is also code in this project to support NEC PC-9801 and NEC PC-9821
MS-DOS and Windows systems.

Each major branch of this source tree has a README file to describe
exactly what is provided.

Linux:
   Run ./buildall.sh to compile. Make sure the linux build of OpenWatcom
   is present in /usr/watcom/binl.

*** Source code formatting ****************************************

As of November 2016 all source changes should be carried out with your
text editor set to use soft tabs, NOT hard tabs, except for makefiles
or otherwise required.

You can do this in VIM by adding this to your .vimrc:

set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab

*** Debug/Release build modes *************************************

By default, binaries compiled with this project are in "release" mode.
The binaries will not contain debug information, traceable stack frames,
and will not contain the "stack overflow" runtime checks. This is to
keep the size of the binaries down.

To compile debug builds, set a DEBUG=1 environment variable in your
current shell or session before running ./make.sh or ./buildall.sh.
You can also immediately invoke a debug build like this:

DEBUG=1 ./make.sh

DEBUG=1 ./buildall.sh