home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Educate / Educate.zip / piano17.zip / mpudev.INF (.txt) < prev    next >
OS/2 Help File  |  1995-09-21  |  13KB  |  219 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.                                 MPUDEV Driver 1.0
  5.  
  6. Please read this document in entirety.  I took the time to make it explicit, 
  7. clear, and very useful.  It took me longer to write it than it will ever take 
  8. you to read it.  Therefore, you owe it to both of us to read it.  OK? 
  9.  
  10. The MPUDEV.SYS driver is an OS/2 device driver for OS/2 2.X+ designed to work 
  11. with any audio/MIDI card containing an MPU-401 compatible MIDI interface. 
  12. (Only MPU-401 UART mode is required of that card).  It allows a program to do 
  13. MIDI input and output through that card.  Such cards include Roland's MPU-401 
  14. and SuperMPU, and MusicQuest's MQX-16 and MQX-32, as well as many other cards. 
  15. Many sound cards, including the Roland RAP-10 and SCC-1 also have an MPU-401 
  16. compatible interface, and also internally attach a built-in General MIDI sound 
  17. module to that interface.  So this driver can be used to send MIDI data to play 
  18. that card's built-in GM module, or adjust its parameters via System Exclusive 
  19. MIDI messages. 
  20.  
  21. MPUDEV.SYS is not an MMPM (ie, MultiMedia Presentation Manager) driver. 
  22. MPUDEV.SYS will not work with MMPM programs.  It requires a program written to 
  23. specifically follow my own protocol for dealing with MIDI input and output.  I 
  24. myself have written a number of such free programs including a System Exclusive 
  25. dump utility, a MIDI piano controller program, a utility to view incoming MIDI 
  26. data, etc.  Programming information is available in this manual for others to 
  27. write programs to use this driver, in languages such as C or even REXX.  There 
  28. is also information for making drivers and Dynamic Link Libraries for other 
  29. hardware, maintaining compatibility with MPUDEV.SYS and its DLLs, so that 
  30. programs which use MPUDEV can be used with other hardware as well. 
  31.  
  32.  
  33. Some of the words in this manual are highlighted in bold text, such as Simple 
  34. Approach.  These are words that refer to MPUDEV definitions.  Other words are 
  35. in colored text such as Channel Pressure.  These refer to MIDI messages (ie, 
  36. data).  Underlined words, such as Pitch Wheel, refer to hardware, such as if I 
  37. was referring to the Pitch Wheel on your MIDI unit.  Words that are in colored 
  38. text such as Read This are meant to be emphasized.  Words in italics refer to 
  39. aspects of OS/2. 
  40.  
  41.  
  42. ΓòÉΓòÉΓòÉ 2. Copyright ΓòÉΓòÉΓòÉ
  43.  
  44. This OS/2 Online Book and the related file MPUDEV.SYS are all copyright 1995 by 
  45. Jeff Glatt.  These files are freely redistributable, and may be used by and 
  46. distributed along with any software, be it commercial or otherwise, provided 
  47. that these files are not internally modified, nor specifically sold as a 
  48. complete product by themselves.  The only price that you have to pay is the one 
  49. that you're already paying by spending all of your time in front of a computer 
  50. instead of developing healthier outlets. 
  51.  
  52. NOT SO STANDARD DISCLAIMER: 
  53.  
  54. These programs are provided "as is" without warranty of any kind either 
  55. expressed or implied or tatooed in a place that only a few people have ever 
  56. seen, including but not limited to the implied warranties of merchantability, 
  57. fitness for a particular purpose, and the dubious assumption that the software 
  58. has been created by a sane individual who would never do anything that may hurt 
  59. you. The entire risk as to the results and performance of the programs is 
  60. assumed by you or someone who looks exactly like you.  Jeff Glatt does not 
  61. guarantee that the functions in these programs will meet your requirements, 
  62. especially if your requirements involve lots of latex and some docile, 
  63. domesticated animal.  Nor does Jeff Glatt warranty the programs to be 
  64. uninterruptable or error-free, although mercifully free of "General Protection 
  65. Faults".  If you use said programs, you can not say anything nasty about the 
  66. author, even if the programs inadvertently cause the erasure of your collection 
  67. of X-rated GIFs of a conservative, overweight and overrated TV "personality" 
  68. plooking himself vigorously with his royalty checks from some rancid paperback. 
  69. Jeff Glatt is not responsible for any damages as a result of anything that he 
  70. has done, or hasn't done, or was supposed to do but never got around to it, and 
  71. furthermore, he doesn't even care so leave him alone, ratface.  You may have 
  72. more or less protections in certain states of the union, depending upon how far 
  73. your local politician is willing to bend over for some bribe from a business 
  74. lobbyist.  Just remember that Jeff Glatt has no money, so don't bother suing 
  75. him as a result of any damages caused by this OS/2 program.  Tell your greasy 
  76. lawyer to go after IBM, and make sure that you pick 12 really stupid pinheads 
  77. for the jury.  If swallowed, induce vomiting immediately by contemplating the 
  78. asthetics of Microsoft Windows. 
  79.  
  80. OS/2 is a trademark (and mismarketed product) of International Business 
  81. Machines Corporation. 
  82.  
  83. Windows is a trademark of Microsoft Incorporated, and furthermore, Bill Gates 
  84. is to blame for it. 
  85.  
  86. If you have unreasonably presumptuous suggestions (ie, an enduser who expects 
  87. outrageous amounts of free support), snide comments, criticisms, and anything 
  88. else other than dollar bills, then send them to someone else because you got it 
  89. for free, and you know what you get for nothing?  On the other hand, any type 
  90. of positive contribution from other programmers is very much welcome and 
  91. encouraged as these are the only folks who can made things happen for OS/2. 
  92. IBM ain't gonna do it.  If you do need to contact the author, then either phone 
  93. some of the more prominent psychiatrict clinics in central New York state, or 
  94. try this: 
  95.  
  96. Jeff Glatt 
  97. 6 Sycamore Drive East 
  98. New Hartford, NY 13413 
  99. (315) 735-5350 
  100.  
  101. Sure, this copyright notice has attitude.  Get used to it, or kill yourself. 
  102.  
  103.  
  104. ΓòÉΓòÉΓòÉ 3. Setup ΓòÉΓòÉΓòÉ
  105.  
  106. First of all, in order to use MPUDEV.SYS, you need a card that offers MPU-401 
  107. hardware compatibility.  The card can't simply offer MPU-401 emulation through 
  108. a software driver or TSR.  It must have the 2 MPU-401 ports; STATUS and DATA. 
  109. It must implement MPU-401 UART mode (ie, Intelligent Mode isn't needed).  Bit 
  110. #6 (DRR) of the STATUS port must be clear when the card is ready to accept 
  111. another byte for output.  Bit #7 (DSR) of the STATUS port must be clear when 
  112. the card has an incoming MIDI byte waiting to be read.  The bi-directional DATA 
  113. port is used to output and input the MIDI data bytes.  The card may also have 
  114. the MPU-401's COMMAND port if it supports Intelligent mode, although MPUDEV.SYS 
  115. doesn't require this since Intelligent mode isn't used.  (Actually, the COMMAND 
  116. port is really half of a bi-directional STATUS port).  Check with your card's 
  117. manufacturer or literature to verify that it supports MPU-401 UART mode in 
  118. hardware.  If necessary, try to get ahold of a technician who knows something 
  119. about his own company's products (good luck), read this here paragraph to him, 
  120. and ask him if it's applicable to his company's audio/MIDI card. 
  121.  
  122. Next, you need to copy the driver to a convenient place where OS/2 can access 
  123. it when booting up.  You also have to add a line to your CONFIG.SYS file to 
  124. have OS/2 automatically setup the driver each time OS/2 boots.  The line begins 
  125. with the DEVICE= statement, followed by the driver's filename, and the driver's 
  126. arguments. 
  127.  
  128. The driver's filename is MPUDEV.SYS.  If you place the driver in some directory 
  129. where OS/2 normally looks for drivers, then you only need specify this as the 
  130. filename.  Otherwise, you need to tell OS/2 the complete path where to locate 
  131. the driver.  For example, if you place the driver in a directory called blort 
  132. on your D: drive, then your statement would begin as so: 
  133.  
  134. DEVICE=D:\BLORT\MPUDEV.SYS 
  135.  
  136. After this, upon the same line, you list arguments for the driver.  MPUDEV.SYS 
  137. can control up to 4 MPU-401 compatible devices.  These 4 units have the 
  138. internal names of MPUDEV1$, MPUDEV2$, MPUDEV3$, and MPUDEV4$.  You specify the 
  139. arguments for each unit within a set of brackets, for example: 
  140.  
  141. DEVICE=MPUDEV.SYS [the args for unit 1 go here] [the args for unit 2 go here] 
  142.  
  143. You don't need to specify args for all 4 units if you don't actually have 4 
  144. such cards.  The above example only specifies args for the first two units; 
  145. MPUDEV1$ and MPUDEV2$. 
  146.  
  147. Args are optional.  If you don't specify them, then defaults are used.  Even 
  148. you want want all default values, you still need to have at least the opening 
  149. and closing bracket for the unit's specification.  Args can usually be placed 
  150. in any order, as long as they remain within the brackets for their intended 
  151. unit.  The arguments are: 
  152.  
  153. Pxxx                     The base (ie, I/O) address where the card is 
  154.                          installed.  xxx is that address in hexadecimal.  If 
  155.                          you don't specify this arg, then MPUDEV assumes that 
  156.                          this unit is at a base address of 330.  Most cards 
  157.                          have jumpers that allow them to be set to various base 
  158.                          addresses.  You must make sure that your card is not 
  159.                          set to the same base address as any other card in your 
  160.                          system (regardless of what type of card it is). 
  161.  
  162. Ixx                      The Interrupt (ie, IRQ) number that the card uses. 
  163.                          xxx is that Interrupt number in decimal.  If you don't 
  164.                          specify this arg, then MPUDEV assumes that this unit 
  165.                          uses Interrupt 9.  Most cards have jumpers that allow 
  166.                          them to be set to various IRQ numbers.  You must make 
  167.                          sure that your card is not set to the same IRQ as any 
  168.                          other card in your system (regardless of what type of 
  169.                          card it is). 
  170.  
  171. /Q                       This suppresses informational messages about this unit 
  172.                          that the driver prints to the screen during OS/2's 
  173.                          boot process.  If you don't specify this arg, then the 
  174.                          driver prints out the Version and Revision numbers of 
  175.                          the unit. 
  176.  
  177. /U                       The driver skips setting the card into MPU-401 UART 
  178.                          mode.  If the card doesn't have the MPU-401's COMMAND 
  179.                          port (ie, Roland cards such as the MPU-401, RAP-10, 
  180.                          and SCC-1 do have this port), then you should specify 
  181.                          this option.  Undoubtably, the card will powerup in 
  182.                          MPU-401 UART mode.  If it doesn't, you'll need some 
  183.                          other software to force it (and keep it) in this mode 
  184.                          before any program can utilize MPUDEV.SYS to do MIDI 
  185.                          I/O.  Skipping this initialization means that MPUDEV's 
  186.                          Revision and Version commands do not return the actual 
  187.                          information supplied from the card itself, and default 
  188.                          to 0.  Furthermore, MPUDEV skips checking that the 
  189.                          card is indeed an MPU-401 UART compatible.  In fact, 
  190.                          if you see the message Unit X failed to respond. Bad? 
  191.                          where X is the unit number, then this means that 
  192.                          either you've specified the wrong base address, or the 
  193.                          card doesn't have a COMMAND port.  If you specify /U 
  194.                          and reboot, and the card appears to be working with 
  195.                          MPUDEV, then you've got a card without a COMMAND port. 
  196.                          If you don't specify this arg, then the driver 
  197.                          switches the card into MPU-401 UART mode, checks that 
  198.                          it has the COMMAND port (and therefore is definitely 
  199.                          an MPU-401 compatible), and retrieves the version and 
  200.                          revision numbers of the card. 
  201.  
  202. /R                       The card is a Roland RAP-10.  This causes the driver 
  203.                          to handle the card in a manner that is more flexible 
  204.                          and efficient for this card.  If you don't specify 
  205.                          this arg, then the driver assumes that the card is a 
  206.                          plain MPU-401 compatible. 
  207.  
  208. So, if you have one card installed at address 220 using interrupt 5, it's a 
  209. RAP-10, and you want it to be the first unit (ie, MPUDEV1$), then your line 
  210. would be: 
  211.  
  212. DEVICE=MPUDEV.SYS [P220 I5 /R] 
  213.  
  214. It's possible to skip some of the units.  For example, if you wanted to skip 
  215. the first two units (ie, MPUDEV1$ and MPUDEV2$) and set the above device to be 
  216. the third unit (ie, MPUDEV3$), then you'd include the brackets for the first 2 
  217. units, but set their base address to 0 which means to skip the unit. 
  218.  
  219. DEVICE=MPUDEV.SYS [P000] [P000] [P220 I5 /R]