#90 MIDI tx interrupt implementation

Frank Buss

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.

1 Attachments


  • Frank Buss

    Frank Buss - 2014-05-24

    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.

  • gpz

    gpz - 2014-05-24

    would you also attach the source to that testprogram? wouldnt mind to add that to our test repository :)

  • Frank Buss

    Frank Buss - 2014-05-24

    Sure. Works with the DATEL emulation in VICE, same as Pro 16.

  • Querino

    Querino - 2014-07-11

    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
  • gpz

    gpz - 2014-07-31

    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! :)

  • Marco van den Heuvel

    • status: pending-accepted --> closed-accepted

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks