File: dosemu.html

package info (click to toggle)
lg-issue18 5-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,928 kB
  • ctags: 148
  • sloc: makefile: 36; sh: 4
file content (126 lines) | stat: -rw-r--r-- 8,087 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD>
<title>dosemu & MIDI: A User's Report Issue 18</title> </HEAD> <BODY BGCOLOR="#FFFFFF"
TEXT="#000000" LINK="#0000FF" VLINK="#0020F0" ALINK="#FF0000"> 
<!--endcut ============================================================-->

<H4> &quot;Linux Gazette...<I>making Linux just a little more
fun!</I>&quot; </H4>

<P> <HR> <P>
<!--===================================================================-->

<center> <H2>DOSEMU & MIDI: A User's Report</H2> <H4>By Dave Phillips,
<a href="mailto:dlphilp@bright.net">dlphilp@bright.net</a></H4> </center>
<P><HR><P>
<BASE="/root/htmlstuff/var/dp_dosemu.html"></a> <p> First, the
necessary version info: <ul> <li>Linux kernel 2.0.29 <li>dosemu
0.66.1 <li>Sound Driver 3.5.4 </ul> And then there's the hardware:
<ul> <li>AMD 486/120 <li>MediaVision Pro Audio Spectrum 16 (PAS16)
soundcard w. MIDI interface adapter <li>Music Quest MQX32M
MIDI interface <li>two Yamaha TX802 synthesizers </ul> <p> <a
href="http://www.ednet.ns.ca/~macleajb/dosemu.html">dosemu</a>
 is an MS-DOS emulator for Linux. The <a
href="http://lexington.lasermoon.co.uk/uncompressed.shtml/texinfo/dosemu_1.html">on-line
manual</a> describes it as <blockquote>"...a user-level program which uses
certain special features of the Linux kernel and the 80386 processor
to run MS-DOS in what we in the biz call a DOS box. The DOS box, a
combination of hardware and software trickery, has these capabilities:
<ul> <li>    the ability to virtualize all input/output and processor
control instructions <li>    the ability to support the word size and
addressing modes of the iAPX86 processor family's real mode, while
still running within the full protected mode environment <li>    the
ability to trap all DOS and BIOS system calls and emulate such calls
as are necessary for proper operation and good performance <li>    the
ability to simulate a hardware environment over which DOS programs are
accustomed to having control.  <li>    the ability to provide MS-DOS
services through native Linux services; for example, dosemu can provide
a virtual hard disk drive which is actually a Linux directory hierarchy.
</ul> The hardware component of the DOS box is the 80386's virtual-8086
mode, the real mode capability described above. The software component
is dosemu."</blockquote> <p> I installed version 0.66.1 because I read
that it supported MIDI, and I was curious to find whether I would be
able to run my favorite DOS MIDI sequencer, Sequencer Plus Gold from
<a href="http://www.voyetra.com">Voyetra</a>. Installation proceeded
successfully, and after some initial fumbling (and a lot of help from
the Linux newsgroups), I was running some DOS programs under Linux.  <p>
However, the MIDI implementation eluded me. I followed the directions
given in the dosemu package: they are simple enough, basically setting
up a link to /dev/sequencer. But since Sequencer Plus requires a Voyetra
API driver, I ran into trouble: the VAPI drivers wouldn't load.  <p> I
tried to use the VAPIMV (Voyetra API for Media Vision) drivers, but they
complained that MVSOUND.SYS wasn't loaded. These drivers are specific
to the PAS16 soundcard, so I was puzzled that they couldn't detect
MVSOUND.SYS (which was indeed successfully loaded by config.sys). I
also tried using the SAPI drivers, Voyetra's API for the SoundBlaster:
the PAS16 has a SB emulation mode which I had enabled in MVSOUND.SYS,
but those drivers wouldn't load, again complaining that MVSOUND.SYS
wasn't installed. VAPIMQX, the driver for the MQX32M, refused to
recognize any hardware but a true MQX. Checking the Linux sound driver
status with 'cat/dev/sndstat' reported my MQX as installed, but complete
support for the sound driver (OSS/Free) has yet to be added to dosemu.
<p> Since MVSOUND.SYS was indeed installed (I checked it in dosemu
using MSD, the Microsoft Diagnostics program), and since the MIDI
interface on the soundcard was activated, I began to wonder whether that
interface could be used. I tested the DOS MIDI programming environment
<a href="ftp://ftp.cs.pdx.edu/pub/music/ravel">RAVEL</a>, which is
"hardwired" internally to only an MPU-401 MIDI interface: to my surprise
and satisfaction, the soundcard's MIDI interface worked, and I now had a
DOS MIDI program working under Linux.<p> Following that line of action,
I figured that the Voyetra native MPU driver just might load. I tried
VAPIMPU: it failed, saying it couldn't find the interrupt. I added the
command-line flag /IRQ:7 and the driver loaded. I now had a Voyetra MIDI
interface device driver loaded, but would Sequencer Plus Gold run ?
<p> Not only does Sequencer Plus run, I am also able to use Voyetra's
Sideman D/TX patch editor/librarian for my TX802s. And I can run RAVEL,
adding a wonderful MIDI programming language to my Linux music & sound
arsenal.  <p> All is not perfect: RAVEL suffers the occasional stuck
note, and the timing will burp while running Seq+ in xdos, particularly
when the mouse is moved. The mouse is problematic with Seq+ in xdos
anyway, sometimes locking cursor movement. Since my configuration
for the dosemu console mode doesn't support the mouse, that problem
doesn't arise there. Switching to another console is possible; this is
especially useful if and when dosemu crashes. Also, programs using VGA
"high" graphics will crash, but I must admit that I have barely begun to
tweak the video subsystem for dosemu. It may eventually be possible to
run Sound Globs, Drummer, and perhaps even M/pc, but for now it seems
that only the most straightforward DOS MIDI programs will load and
run without major problems.  <p> And there is a much greater problem:
only version 1.26 of the VAPIMPU driver appears to work properly. A more
recent version (1.51) will not load, even with the address and interrupt
specified at the command-line. However, Rutger Nijlunsing has mentioned
that he is working on an OSS/Free driver for dosemu which would likely
permit full use of my MQX interface card. When that arrives I may be able
to utilize advanced features of Seq+ such as multiport MIDI (for 32 MIDI
channels) and SMPTE time-code.  <p> [Since writing the above text, I have
tweaked /etc/dosemu.conf for better performance in both X and console
modes. Setting <b>hogthreshold 0</b>seems to improve playback stability. I
have yet to fix the problem with the mouse in xdos, but it isn't much of
a real problem.  <p> Linux is free, dosemu is free, RAVEL is free. My
DOS MIDI software can't be run in a DOS box under Win95 with my hardware:
it <i>can</i>be done, but I'd have to buy another soundcard. Linux will run
its DOS emulator, with MIDI and sound support, from an X window or from a
virtual console (I have six to choose from). If I want to run Sequencer
Plus in DOS itself, I have to either drop out of Win95 altogether
(DOS mode) or not boot into Win95 at all. With Win95 I get one or the
other; with Linux, I get the best of all possible worlds.  <p><hr><p>
<center><a href="mailto:dlphilp@bright.net">Dave Phillips</a></center> <p>
<center><a href="http://www.bright.net/~dlphilp/linux_soundapps.html">Some
Interesting Sound & Music Software For Linux</a></center>


<!--===================================================================-->
<P> <hr> <P> <center><H5>Copyright &copy; 1997, Dave Phillips<BR>
Published in Issue 18 of the Linux Gazette, June 1997</H5></center>

<!--===================================================================-->
<P> <hr> <P> <A HREF="./lg_toc18.html"><IMG ALIGN=BOTTOM
SRC="../gx/indexnew.gif" ALT="[ TABLE OF CONTENTS ]"></A> <A
HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A> <A HREF="./disk_hog.html"><IMG
SRC="../gx/back2.gif" ALT=" Back "></A> <A HREF="./gm.html"><IMG
SRC="../gx/fwd.gif" ALT=" Next "></A> <P> <hr> <P> 
<!--startcut ==========================================================-->
</BODY> </HTML> 
<!--endcut ============================================================-->