VOGONS


First post, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie

I cannot find information about if the original MPU-401 had a receive FIFO buffer in UART mode, does anyone know? If it has a FIFO, how many bytes it can buffer?

I mainly ask this because my retro PC has an integrated sound chip with joystick/MIDI ports, and I cannot get it to trigger MIDI data received interrupts, nor there is no option in BIOS to select the used IRQ line (port is selectable though). I don't know if it gets enabled after some DOS program is used to initialize it, but I don't have any drivers for that motherboard.

I think different sound chips have different amount of FIFO, and MIDI receive interrupts can be enabled by configuring the specific registers on that chip. I have had no problems before with GUS classic or SB16 MPU implementations.

The integrated sound chip seems to have some amount of receive FIFO buffer, most likely 16 bytes, so I can most likely work around this lack of IRQ problem by polling and reading the received data out of the FIFO in a timer interrupt, that is executed more often than it takes to receive 16 bytes, or about more than about 200Hz.

Of course since the rig has one ISA slot I could put a SB16 there to get receive interrupts. But currently there is an Aztec sound board I use for OPL3 debugging, and I don't have info how to enable MIDI RX interrupts on the Aztec.

Reply 1 of 1, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie

Duh, it is right there in the MPU-401 owners manual:

For ROM version 1.3, the MIDI IN buffer is enlarged to approximately 1700 bytes from 85 bytes.

I will assume modern sound cards should have at least 16 bytes of FIFO then.