[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference napalm::commusic_v1

Title:* * Computer Music, MIDI, and Related Topics * *
Notice:Conference has been write-locked. Use new version.
Moderator:DYPSS1::SCHAFER
Created:Thu Feb 20 1986
Last Modified:Mon Aug 29 1994
Last Successful Update:Fri Jun 06 1997
Number of topics:2852
Total number of notes:33157

1914.0. "Need Info on Assembly Program to Init Roland MPUIPC" by ELUDOM::GRIEB () Sat Feb 18 1989 19:04

I'm loooking for some software information for the Roland MPU-IPC.
I have some patch software that doesn't seem to initialize the thing
correctly so I want to write a little assembler program that I will
run before my patch software that will pre-initialize it.

The only info I have is that the status port is at 331h, the data port is
at 330h and the command port is at 331h. Does anyone have any information
about how to program this thing ? In particular I'm looking for the
definition of the bits in the status port and how to make the interface
'reset itself'. Any help or pointers to help would be greatly appreciated.
Thanks.

					Tg

P.S. the software I have is a patch ed/libr for the IBM PC and the Korg
M1. I just got it. Maybe I can do a review later if anyone is interested.


T.RTitleUserPersonal
Name
DateLines
1914.1Try this.TROA01::HITCHMOUGHSun Feb 19 1989 16:1939
    I'm assuming that the IPC uses the same protocol as the 401, so
    some questions:
    	Is the librarian written for the IPC/401?
    	Re you running anything else that uses it before you try the
    librarian. For example Texture leaves the 401 in a funny state so
    you usually have to re-boot before using anything else after Texture.
    	Do you have a copy of the reference manual for the 401? If not
    I may be able to help there, however I'm out of town for a week
    so I couldnt help you 'till I come back.
    
    The problem is that the 401 has basically two modes of operation,
    simple UART and intelligently buffered. It is possible to get the
    unit into an unbreakable loop, because it sends an ACK byte in response
    to a command. If yo don't read this byte you cant get at the data
    that could be sitting in the buffer, so the thing just sits there.
    
    You might try this little routine that someone sent into December's
    issue of E.M. 
    
     start 	mov dx,0331
     loop1      in al,dx
    		test al,40
    		jnz loop1
    		mov al,ff
    		out dx,al
    		dec dx
    		in al,dx
    		cmp al,fe
    		jz end
    		jmp start
    end		int 20
    
    There's obviously more you need to do to get a .com file, but the
    writer says this resets his MPU and runs it before anything else.
    I haven't tried it 'cos the code I write does this itself but it
    may be worth a try.
    
    Ken
    
1914.2MPU-IPC support routines availableTLE::GRIEBFri Nov 10 1989 17:0615
For them that is interested:

I have spent my free time over the last week or so writing a set of
assembler support routines for the MPU-IPC, MPU-401 or compatible.
These routines, written in MICROSOFT Assembler support the use of
the MPUIPC in interrupt mode. The routines are written to be called
from MICROSOFT C. The sources and a sample program may be found in:

TLE::PPP$:[GRIEB.XFER]MPU401.ARC

If I can figure out how to give them to the MIDILIB I will do that.

					Tg

1914.3How to copy to MIDILIBDYO780::SCHAFERBrad - boycott hell.Fri Nov 10 1989 17:594
    Copy the .ARC and an associated .DOC file to [MIDILIB.DEPOSIT] (using
    the network::device: listed in 17).  Then send me mail. 

-b
1914.4books available.TRFSV1::WEBSTERJust another brick in the wallThu Nov 30 1989 12:269
	Jim Conger's book "Midi programming in C" has a bunch of assembler
support routines for the MPU401. It also contains info on all the commands
for the MPU401. I have found the book interesting, as it shows how to build
a patch libarian for a Juno. He also has a follow book that show how to write
a sequencer for the I*M pc.

	-Larry