The MIDI tx interrupt didn't work, because it was not implemented. I implemented it, see attached file. Tested with svn revision 28076.
Additional changes:
mididrv_in_open and mididrv_out_open was called each time when the control register was written, without closing it before. Now it is opened only once, until closed.
the source code is a bit refactored: the interrupt bits of the status register are set in one function, only, the new midi_update_int function, which sets the C64 IRQ based on rx_irq or tx_irq, too.
The changes were tested with the attached file midi-out-irq-test.prg: old VICE: border color black. Patched version: border color white. And I tested it with Steinberg Pro 16, which didn't hang before the patch, because the interrupt was never called. I hope I didn't break any other programs.
I meant: Steinberg Pro 16 hang before the patch. Tested with version 2.3 ( http://csdb.dk/release/?id=49925 ) and the original version 2.4, copied to a G64 image with KryoFlux.
would you also attach the source to that testprogram? wouldnt mind to add that to our test repository :)
Sure. Works with the DATEL emulation in VICE, same as Pro 16.
thanks, this seems to work. at least for the mentioned pro 16.
i think i will include this into my builds.
Last edit: Querino 2014-07-11
applied in r28195 - just two things:
- next time please supply a regular patch (use svn diff for example)
- don't use c++ style comments
that said - thanks for the patch! :)