• R/O
  • SSH

mdr: Repository summary

Recent Commits RSS

Rev. Time Author Message
r109 2023-11-07 05:54:07 mateuszviste updated documentation: mdr_dos_truename() requires DOS 3.x+
r108 2023-10-19 05:36:12 mateuszviste improved README
r107 2023-10-19 05:30:08 mateuszviste renamed all timer_ functions to mdr_timer_, improved head...
r106 2023-10-17 20:35:38 mateuszviste fixed OPL timer initialization
r105 2023-10-17 06:28:27 mateuszviste added MDR_OPL_TIMER_ functions
r104 2023-10-15 04:46:27 mateuszviste added the mdr_opl_imfeasy_ interface
r103 2023-10-14 07:09:47 mateuszviste fixed mdr_opl_noteoff() so it does not mess up the curren...
r102 2023-10-14 06:58:44 mateuszviste added mdr_opl_timbregen() and simplified timbre structs
r101 2023-10-13 05:59:05 mateuszviste moved OPL notes playing to a separate object file
r100 2023-10-13 05:52:13 mateuszviste added mdr_opl_imf_init() and mdr_opl_imf_playback()

Recently edited Tags

Name Rev. Time Author
2023 r74 2023-07-30 04:23:01 mateuszviste
2022.0 r32 2022-10-10 04:25:32 mateuszviste


                             Mateusz' DOS Routines

Mateusz' DOS Routines (MDR) is a C library that contains a variety of routines
to ease the development of real mode DOS applications.

These routines are mostly targeted at the Open Watcom compiler, but might work
with other C compilers as well.

All the routines have been created by Mateusz Viste and are published under the
terms of the MIT license.

List of available modules:

BIOS     BIOS-based functions
COUT     console output (writing to text-mode display)
DOS      functions interacting with DOS
KEYB     basic functions to interact with the keyboard
MOUSE    mouse routines
OPL      OPL2 (Adlib style) audio
PCX      parsing, loading and uncompressing PCX images
RS232    writing to and reading from an RS-232 ("COM") port
SBDIGI   playing digitized sounds with a SoundBlaster-compatible card
TIMER    high-resolution (1 kHz) timer, relies on PIT reprogramming
TRIGINT  sin and cos functions using integers only (8086-compatible)
UNZIP    iteration over ZIP archives (no decompression code)
VID12    driver for mode 12h VGA graphic (640x480, 16 colors)
VIDEO    drivers for 320x200 video modes (256 colors on VGA, 16 colors on CGA)
WAVE     parsing and loading WAVE sound files
XMS      detecting and using XMS memory to store data

Documentation is contained in header (*.H) files in the INC\MDR\ directory.

| USAGE                                                                      |

Using MDR is no different than using any other library: you need to include
the header file(s) you wish to rely on and pass the lib file that matches your
memory model (small/compact/medium/large) to your linker.

Example program, KBTEST.C:

  #include <mdr\dos.h>

  int main(void) {

How to compile with the Watcom C Compile and Link Utility:

  wcl -ms kbtest.c mdrs2024.lib

| COMPILATION FROM SOURCES                                                   |

Should you wish to compile MDR from sources instead of relying on precompiled
LIB binaries, you will need the Watcom (or Open Watcom) C compiler and use its
wmake utility as follows:

  wmake clean
  wmake model=<MEMORY MODEL>

valid memory model options are:

  wmake model=s
  wmake model=c
  wmake model=m
  wmake model=l

Show on old repository browser