Specifications
MIDI Port I/O Programming 5-9
Enter UART Mode
In order to send or receive MIDI data, the command byte 3Fh must first be sent out to
switch the interface into UART mode. A Command Acknowledge byte of 0FEh will be
made available on the Data port if the mode switch is successful.
In UART mode, MIDI data is sent to and received from the Data port. The Reset
command is used to exit UART mode.
Example code:
mov dx,wMpuBaseAddx ;MPU-401 base I/O address
inc dx ;Status port
Busy:
in al,dx ;Read status port
test al,40h ;Ready for output?
jnz Busy ;No
mov al,3Fh ;Output "Enter UART mode"
out dx,al ; command via Command port
sub cx,cx ;Maximum of 65536 tries
Empty:
in al,dx ;Read status port
test al,80h ;Input data ready?
jnz NextLoop ;No
dec dx ;Data port
in al,dx ;Read data
cmp al,0FEh ;Successful mode switch?
je InUartMode ;SUCCESS!
inc dx ;Status port
NextLoop:
loop Empty ;Try again
;***
;*** Failed to switch to UART mode
An interrupt is generated when the interface is set to UART mode. It is not necessary to
set up an interrupt service routine to handle the interrupt because reading from the Data
port will clear the interrupt signal.
It important that your application send the MPU-401 reset command to exit the MIDI
UART mode when your application terminates.