Hackipedia DOSLIB, a general collection of useful libraries for writing MS-DOS software
Switch branches/tags
untagged-5f596c4e72ecda6cebec somethingpc98-1 doslib-win16-ne-insight doslib-sb-ts-ps-2017-10-22 doslib-dosamp-and-sbtest-20171030 doslib-20180731-0905 doslib-20180731-0003 doslib-20180729-2127 doslib-20180729-0059 doslib-20180724-1807 doslib-20180716 doslib-20180702-1936 doslib-20180627 doslib-20180627-1441 doslib-20180619 doslib-20180528 doslib-20180318-0118 doslib-20171227 doslib-20171209 doslib-20170111-095936-commit-3d4c195f15b66fe744b5aa8ea3d57d9fa0c375d8 doslib-20161127-140059-commit-f2025af69c8c48a791211ebb5d4cec8134d29e4f doslib-20161127-110430-commit-7b7e832198cf229af1f0e38ca42f658fb2c0f9bd doslib-20161126-100319-commit-6089c747b7ab40f99459e731d1bec60f465d7dad doslib-20161113-083809-commit-f5ac4b3f27421816766c23ba7dc270b0dc56124a doslib-20161022-225805-commit-807e8cab16f48ea788400f9253204f18718290ef doslib-20160313-155310-commit-c55f2f3f22d9ab3ca64631629378512ab7886fbe doslib-20160208-013358-commit-9212136735acf8cefeb6740136603a1a779f5bb4 doslib-20140920-230334-commit-f3ace028b272fee3f9a634abd9513a8ebf9b1f23 doslib-20140913-163324-commit-5fe520fa015a2ebf7a1c28d368646a7375991194 doslib-20140804-024804-commit-40583e04f5962579af0fa2defeab808fc9b34951 doslib-20140719-232134-commit-968ebb26b0a96efe2ea620ae431b434e15e330ff doslib-20140712-115956-commit-8327f81b347efe2a951abc5f9fa3080d85cdce78 doslib-01140e94cf9c8438ea50abc791e2e740bf5c95e9-dosamp dosamp-with-file-open-prompt dosamp-try-this-20171010 dosamp-final-20171011 dosamp-complete-with-windows cga-splitscreen-bizatch cga-snowman-1 20161021-122358-commit-199ec05ee8be73b636e2aca6904fddea908bc1fe 20141027-095935-commit-ce747d3d6918fb0c25a813ebc180cc9f4d0edeb9
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
asminc don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
bootsect don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
build-logs don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
cxx more Jun 11, 2018
dmopatch more Aug 17, 2018
doc don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
dosbox/bins more Dec 31, 2017
dosdrv don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
ext more Mar 30, 2018
extprac don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
fmt-doc don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
fmt OMF: make sure each FIXUPP tracks what segment the fixup is to be app… Jul 28, 2018
games copy update only Jun 1, 2018
hw play with 70-74 Nov 10, 2018
mak Fix exe-to-rex and setver path handling Mar 30, 2018
media no small model DOSAMP either. Nov 12, 2017
minx86dec @ 33bf4af more Sep 8, 2017
misc PC-98 extended memcpy is INT 1Fh not INT 15h Jun 10, 2018
objexp don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
os2 don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
test-fw Update video test to show the effects of Attribute Controller registe… Sep 24, 2018
tiny more Mar 10, 2018
tinyw16 don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
tinyw32 don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
tool disallow emitting symbols in the STACK segment for non-EXE output for… Nov 7, 2018
vir don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
windows more vxd Apr 12, 2018
windrv more Aug 30, 2018
.gitignore ignore iconv files Apr 17, 2016
.gitmodules minx86dec module Jan 27, 2017
CODE_OF_CONDUCT.md more Oct 1, 2018
Doxyfile let's begin adding some Doxygen to this project May 11, 2017
LICENSE how did I forget this? Dec 26, 2016
Windows NE notes.txt NE header notes Jan 18, 2017
any-file-names-not-8x3.pl remove old scripts, convert hard tabs to soft Nov 13, 2016
any-file-names-with-hard-tabs.pl 3rd party ext/ code has tabs, don't bother me with it Nov 13, 2016
any-seg-reloc-errors.pl don't warn me about Watcom fpu87 emulation warnings, for now Nov 27, 2016
buildall.sh don't overwrite yourself on update, overwrite the subdir's buildall.sh Sep 8, 2017
buildgcci386-71.sh more May 14, 2017
cleantree more Sep 8, 2017
cleanup.sh more Jan 27, 2017
commit-doxygen let's begin adding some Doxygen to this project May 11, 2017
common-makefile.sh this project hasn't been buildable from pure DOS for a long time now. Sep 8, 2017
debug.exx more May 28, 2018
devlog iiiii Feb 4, 2013
dos32a.dat iiiii Feb 4, 2013
dos4gw.dat iiiii Feb 4, 2013
dos4gwac.dat iiiii Feb 4, 2013
dosbox-guardian.jmc.conf iiiii Feb 4, 2013
dosbox-quadcore51.isp.conf iiiii Feb 4, 2013
dosbox-quadcore51.jmc.conf iiiii Feb 4, 2013
dosbox.conf iiiii Feb 4, 2013
extdep.mak example project to demonstrate how an external project can use this l… Mar 16, 2016
git-binary-packup.pl make sure to include bin dir Jan 11, 2017
git-howto more Jan 31, 2016
git-source-pickup.pl remove old scripts, convert hard tabs to soft Nov 13, 2016
git-update-all meh Apr 27, 2013
git-update-all-wo-push argh May 12, 2014
linux-ow.sh more Jul 29, 2018
make-doxygen let's begin adding some Doxygen to this project May 11, 2017
make-lowercase remove old scripts, convert hard tabs to soft Nov 13, 2016
readme now, you can help fund this project! Nov 3, 2017
remove-batchfiles.sh iiiii Feb 4, 2013
tiny-model-readme.txt readme Nov 27, 2016
todo iiiii Feb 4, 2013

readme

*** 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