Minde can be used to run some DOS applications, aimed at demos.
Some games run too. XTC Player runs - now thats COOL.

===
Not every bit of code was written by me, specifically:

a. GUS emulation provided by T$'s excellent GUSemu32 [1]

b. LE loader, PMW loader/decompresser - Niklas 'pascal' Beisert
   (ldr.c) [no longer used in mainline]

c. Keyboard handling was _largely_ based on ideas found in DOSBox [2]
   Thanks to Sjoerd van der Berg for permission to use those ideas.
   (kbd.c)

d. DOS wild-card file matching taken from WINE (or ReWind) [3]
   (inc/wfm.inc - read relevant comments there)

e. SWAR algorithms were used for popcount/lsbindex [4]
   (inc/bit.h - see note on popcount)

f. VBE structures - Glenn 'Gaffer' Fiedler (PTC)
   (utl/structs.h)

g. VBE calls - mfx (slux)
   (utl/getmodes.c)

h. VGA Emulation - Fabrice Bellard (QEMU) [9]
   (tdp/vgaemu)

i. VGA BIOS modes setup - Plex86/Bochs VGABios [10]
   (tdp/vgabios)

j. EMM implementation - Carnegie Mellon University [11]
   (tdp/mdos)

k. SHLD/SHRD - Bochs [8]
   (i86/eff.tab)

l. Horizontal retrace magic - DOSEMU [5]
   (vga.c)

z. If You think this list is incomplete, do tell

8x8 8x14 8x16 fonts (the ones in inc/_NNxNN/.inc) taken from keyrus
VGA palettes (inc/pal.inc) taken from my video card

Following projects where scavenged for solutions to some obscure
problems:

Wine   [3]
DOSEMU [5]
DOSBox [2]
QEMU   [9]
Twine  [?]
MDOS   [11]
Bochs  [8]

===
DOC ACK

Lot's of documentation was used, so this section must be filled later.
(but see doc.ack)

===
Manual

F12(held) + f - flip full-screen
F12(held) + g - (un)grab mouse
F12(held) + d - attach debugger (or crash)
F12(held) + p - pause/resume
F12(held) + q - quit

One must alter `sig.debugger.command' in `minde.mup' pointing to location
of `debug.sh' and possibly modify `debug.sh' and `.gdbinit' for debugger
attachments to work.

===
Building

Requirements:

a. recent binutils (2.11.93.0.2 here)
b. recent Linux (2.4.16 here) or FreeBSD (4.7 here)
c. C99 (GCC 3.2 and ICC 7, 7.1 here)
d. for Linux - recent GLIBC (2.2.5 here)
e. SDL (1.2.[56] here) (--disable-threads ought to be used for FreeBSD)
f. GNU Make (3.79.1 here)

Optional:
a. Plex86/Bochs VGABios for better VGA emulation [10]
b. OCaml (3.0[67] here) if you wish to modify turtle or vbe/kbd gen [12]
c. Hermes (1.3.2 here) for realizable output [13]
d. SDL_stretch (0.2.2 here, mutually exclusive with c.) ditto [14]

Linux: untar; make [opt]; pray

===
Specifics

DOS

   INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM (AH=4Bh)
   Is not implemented. So to run DOS4GW (non-professional) programs 
   either craft special `minde.mup':
     exe=/path/to/dos4gw.exe
     C=/path/to/program
     dir=c:\
     args=program.exe 

   Or edit `minde4gw.sh' script specifying correct location of minde
   and `dos4gw.exe'

   All in all lots of DOS functions are either not implemented or
   implemented badly. Beware

Audio

   OSS is needed(ALSA's OSS emulation works just fine) 

   Many games mix sound at very low frequencies in 8 bit and mono, for
   those it might be a good idea to decrease `audio.frag.size'
   and/or `audio.nfrags' otherwise latency is quite noticeable

Mouse

  Some hackish mouse support in place, probably needs a lot of work

VBE

  Paging is not really correct

GUS

  Interaction with GUSemu32 should be better

MIDI

  Hmm... would be nice for Sierra games

Linux

  It's better to have `/dev/shm' mounted

FreeBSD

  Kernel must be compiled with "options USER_LDT"
  SDL must be configured with --disable-threads
  [Support for FreeBSD removed due to lack of motivation]

C99

  Compiler partially supporting ISO9899:1999 ISO C99 must be used.
  (For designated initializers mainly)
  Compiler must also support form of GCC extended in-line asm
  GCC 3.2+ and ICC 7+ qualify

ICC 7.x
  
  For random reasons GCC 3.2 should also be present in the system

===
Satisfaction

a. NOT GUARANTEED
b. look at [2] [3] [5] [6] [7] [8] [9] they might serve you better

===
Thanks

First and foremost:
Brave demo-makers of the past and present

Special thanks:
T$, Pascal, Harekiet

Tusen takk til:
Ghyll

Spasibo:
Coderipper

Disorder handshakes(5th edition)
--------------------------------
Skal,   Unreal,    Ex, Coderipper,   dAS,   Action, Vastator,  pGeist,
Ms.Saigon,  middy, lnx, TCMAN,   greco,  dvb, frenzy, Gaffer,  Loblin,
Raster, df, lovex, Harmless, HeadSoft, Ghyll, lessy, tmk, Adept, Adok,
Crest, ED_Lead,   icepick,  Mr.Z, Reptile,   Multiplex, fall,  Ravian,
Sagacity, salami, shock, The Joker, toshka, whizzter, zensunni, codex,
[Wog|Zog|Carmody|Tan|Warezpimp],    ica,  Kneebiter,  M.Bimba,   mali,
mcbyte, nix, Solar_Diz, xls, Zed, Teran, #coders

===
REF

[1] http://deinmeister.de/gusemu/
[2] http://dosbox.sourceforge.net
[3] http://www.winehq.com
[4] http://aggregate.org/MAGIC/
[5] http://dosemu.sourceforge.net/
[6] http://www.vmware.com
[7] http://www.connectix.com/
[8] http://bochs.sourceforge.net/
[9] http://savannah.nongnu.org/projects/qemu
    http://fabrice.bellard.free.fr/qemu/qemu-doc.html
[10] http://www.nongnu.org/vgabios/
[11] http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/sources/sources_top.html
[12] http://caml.inria.fr/ocaml/distrib.html
[13] http://www.clanlib.org/hermes/
[14] http://sdl-stretch.sourceforge.net/