reverse engineering MROS of cubase

Somewhere to chat about MIDI music creation, sequencers and related hardware

Moderators: Mug UK, lotek_style, Moderator Team

User avatar
Fujiyama
Atari Super Hero
Atari Super Hero
Posts: 639
Joined: Thu Jul 12, 2007 8:21 am
Location: Norway

Re: reverse engineering MROS of cubase

Postby Fujiyama » Fri Mar 30, 2018 8:42 pm

Yes, excellent work indeed, Foxie!
Mega STe | MonSTer (Mega STe) with dual IDE-CF memory card adapter | STe | SM-144 |NEC Multisync 1990SXi | IDE doubler | ST_ESCC | RSVE | ICD Link II | Link '97 | HD floppy drive/AJAX | HD floppy module | Minolta PCMCIA card-drive | Realtime Clock module | Discovery cartridge | Unitor-2 | Export | Combiner | Steady Eye | Human Touch | Unicorn USB

Are you a good person?

User avatar
Foxie
Captain Atari
Captain Atari
Posts: 354
Joined: Wed Feb 03, 2016 7:12 pm

Re: reverse engineering MROS of cubase

Postby Foxie » Fri Mar 30, 2018 10:36 pm

charles wrote:these listed files are just drivers from Cubase.


The drivers reveal an enormous amount about how MROS actually works. The original poster's objective was to be able to program the various Atari MIDI expanders. This can be done through MROS, but it's probably much better to program them directly. MROS appears to be very slow, you wouldn't want to use it unless you really had to.

Another possibility is just loading the MROS drivers into your own program - without MROS at all. All the MROS drivers expose some very well-defined hooks, so it should be possible to mimic what MROS does.

User avatar
shoggoth
Nature
Nature
Posts: 951
Joined: Tue Aug 01, 2006 9:21 am
Location: Halmstad, Sweden
Contact:

Re: reverse engineering MROS of cubase

Postby shoggoth » Sat Mar 31, 2018 7:17 am

Amazing! Great work!
Ain't no space like PeP-space.

User avatar
Foxie
Captain Atari
Captain Atari
Posts: 354
Joined: Wed Feb 03, 2016 7:12 pm

Re: reverse engineering MROS of cubase

Postby Foxie » Mon Apr 02, 2018 7:04 pm

LAN port driver now disassembled and documented: https://pastebin.com/TLE0E8tL

This gives some insight into how MIDI input is handled in MROS. It's not very complicated, it just calls an MROS function to inject data into it. The driver has a FIFO in between the hardware and MROS (probably because MROS is very slow).

The driver also opens MROS using an MEM call. I haven't seen a driver do this before. I don't know if it's necessary for any input-using driver.

The next driver I'm disassembling is the Steinberg MIDI3. This may be more difficult because I don't know anything about the protocol it uses.

User avatar
Cyprian
Atari God
Atari God
Posts: 1518
Joined: Fri Oct 04, 2002 11:23 am
Location: Warsaw, Poland

Re: reverse engineering MROS of cubase

Postby Cyprian » Fri Apr 06, 2018 3:07 pm

Foxie, EPSS has MROS driver http://epss.copson.se/
Myabe it would be worth to disassemble it
Jaugar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SDrive / PAK68/3 / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
Hatari / Steem SSE / Aranym / Saint
http://260ste.appspot.com/

User avatar
Foxie
Captain Atari
Captain Atari
Posts: 354
Joined: Wed Feb 03, 2016 7:12 pm

Re: reverse engineering MROS of cubase

Postby Foxie » Tue Apr 10, 2018 3:15 am

Cyprian wrote:Foxie, EPSS has MROS driver http://epss.copson.se/
Myabe it would be worth to disassemble it


I'll look into this soon, what's interesting is it has no hardware-defined limit how quickly it can accept MIDI data. Initially it looked like there was a problem trying to read data too quickly from MROS. The recent tests haven't reproduced that problem with a newly written driver. I'm also interested in trying to disassemble the mros_get_byte function. It's faster than I was expecting (50us), but still not as fast as I'd like. I'm wondering if the data can just be read directly from the buffer without calling MROS at all.


Return to “MIDI Software and Hardware”

Who is online

Users browsing this forum: No registered users and 3 guests