• R/O
  • SSH
  • HTTPS

mdr: Source Tree


Name Size Rev. Time Author Log Message
pcx r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
keyb r62 2023-07-04 07:31:33 mateuszviste keyb_getkeyb() is entirely in assembl...
bios r69 2023-07-20 06:40:56 mateuszviste added the BIOS module, with a single ...
sbdigi r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
tests r54 2022-12-20 20:49:07 mateuszviste added UNZIP module for iteration over...
wave r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
unzip r54 2022-12-20 20:49:07 mateuszviste added UNZIP module for iteration over...
video r66 2023-07-12 18:07:11 mateuszviste removed dependencies on int86(), repl...
xms r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
inc r72 2023-07-30 00:40:38 mateuszviste version declaration
cout r68 2023-07-20 06:18:22 mateuszviste added mdr_cout_char_rep()
rs232 r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
readme.txt 2.68 k r73 2023-07-30 00:41:28 mateuszviste doc update
makefile 2.36 k r73 2023-07-30 00:41:28 mateuszviste doc update
history.txt 785 r73 2023-07-30 00:41:28 mateuszviste doc update
trigint r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
timer r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...
dos r67 2023-07-18 06:18:24 mateuszviste added mdr_dos_getenv()
mouse r50 2022-11-12 18:12:32 mateuszviste headers moved to a subdirectory to av...

readme.txt

                             Mateusz' DOS Routines
                               http://mdr.osdn.io


Mateusz' DOS Routines (MDR) is a collection of C library that contain 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
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 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 within header (*.H) files.


+============================================================================+
| 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\keyb.h>

  int main(void) {
    keyb_getkey();
    return(0);
  }

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

  wcl -ms kbtest.c mdrs2023.lib


+============================================================================+
| COMPILATION FROM SOURCES                                                   |
+============================================================================+

Should you wish to compile MDR from souces 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 options are:

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


==============================================================================
Show on old repository browser