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/