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
tyk
Atari nerd
Atari nerd
Posts: 44
Joined: Fri Sep 23, 2011 5:55 pm

reverse engineering MROS of cubase

Postby tyk » Mon May 20, 2013 5:36 pm

I want support extra midi ports like Steinberg SMP24 and Steinberg Midex+ and C-Lab Export, but problem is that there is not documentation how. Cubase use MROS extension to support them.

I have find out that file MROS3_45 is normal program and it setup trap #8-vector and exit. Cubase only run MROS3_45 in startup and after that it uses trap #8. In dissassembly trap #8 is just $0a0. If this help somebody can reverse engineer MROS more, it would be nice. I think you don't have to have any extra ports, because I think Cubase use MROS for normal MIDI-ports too.

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

Re: reverse engineering MROS of cubase

Postby Cyprian » Mon May 20, 2013 5:59 pm

16 years ago I was trying thee same. If I remember correctly, my outcome was that MROS (e.g MROS3_43) is just a hardware independent layer, placed between Cubase and a real hardware drivers - DRV files.
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
shoggoth
Nature
Nature
Posts: 934
Joined: Tue Aug 01, 2006 9:21 am
Location: Halmstad, Sweden
Contact:

Re: reverse engineering MROS of cubase

Postby shoggoth » Mon May 20, 2013 8:26 pm

Yeah. Run EasyRider on one of the simpler .DRV-files and use trial & error.
Ain't no space like PeP-space.

User avatar
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Tue May 21, 2013 10:58 pm

i have couple suggestions and couple questions:
ready?

you need to be able to program to use these,,
can u program?


if you want to use additional midi ports then take the midi data and redirect to one of desired ports:
printer
rs232
joystick
cartridge
hard disk(?)
midi

mros has been made to be used within a sequence environment
since you haven't told us exactilly what or how u want to use it with
just having multiple midi output would be kinda silly

these are know midi programs for the atari that use mros

EPSS -installs itsself like mros
drumatix-uses mros


few others but i forgot
hope i don't sound to mechanical

charlie
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!

User avatar
tyk
Atari nerd
Atari nerd
Posts: 44
Joined: Fri Sep 23, 2011 5:55 pm

Re: reverse engineering MROS of cubase

Postby tyk » Wed May 22, 2013 4:52 pm

shoggoth wrote:Yeah. Run EasyRider on one of the simpler .DRV-files and use trial & error.


I have get that EasyRider hint one time before, where I can find it?

User avatar
tyk
Atari nerd
Atari nerd
Posts: 44
Joined: Fri Sep 23, 2011 5:55 pm

Re: reverse engineering MROS of cubase

Postby tyk » Wed May 22, 2013 5:26 pm

charles wrote:you need to be able to program to use these,,
can u program?


I have programmed with assembly these example:http://tyk.atari.org

And I have programmed Midi-sysex utility with normal atari midi-ports (about ten years ago), but
Now I want add support for extra ports and even make use display of Emagic Logic Control.
Strange thing is that it was easy find how to write something trough midi to its display or move
motor faders, but so hard to find information about how to use extra midiports of any of Atari
optional MIDI-interfaces.

charles wrote:if you want to use additional midi ports then take the midi data and redirect to one of desired ports:
printer


Steinberg SMP24 use printer port, but it's not that simple that you just redirect. Especially If you want read both midi-inputs.

charles wrote: rs232


C-Lab Export use RS232, but with it didn't work that way that just redirect.

charles wrote:joystick


I haven't seen any joystick port MIDI-interfaces.

charles wrote:cartridge


I have Steinberg Midex+ and Emagic Log 3(that doesn't have MROS drivers only works with Emagic softwares).
And Cartridge port especially isn´t just redirecting. By the way both have cartridge thru..so it would be
nice get them work together totally 2 ins and 8 outs plus normal ports.

charles wrote:mros has been made to be used within a sequence environment
since you haven't told us exactilly what or how u want to use it with
just having multiple midi output would be kinda silly


In long run I want make MIDI router and hardware synth editor program that gives visual feedback to
some MIDI controllers.

charles wrote:these are know midi programs for the atari that use mros
EPSS -installs itsself like mros
drumatix-uses mros


Live plus also use.

charles wrote:hope i don't sound to mechanical


Maybe I am more mechanical :)

User avatar
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Wed May 22, 2013 9:53 pm

heres some more advice , its all interupt driven and if you install new handlers into the interupts , i think the atari os only permits 1ms to go into and come out of isr
anything else will make the system crash.

i really wish i knew more and all the time i write my own midisoftware too!
good luck and lets keep intouch , too much for one to do by one self.


charlie
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!

User avatar
tyk
Atari nerd
Atari nerd
Posts: 44
Joined: Fri Sep 23, 2011 5:55 pm

Re: reverse engineering MROS of cubase

Postby tyk » Wed Oct 23, 2013 6:41 pm

Interupt is not problem. Code have to put in little pieces and make jump table. You can even cache that way program. You make list what to do next and jumping around program with jump table with number from list. So you can make very big programs too. Ofcourse there coming 1 ms delay, but there is about 2 ms before next midi byte comes. So with good programming your program works more realtime than in modern PC:s.

User avatar
tyk
Atari nerd
Atari nerd
Posts: 44
Joined: Fri Sep 23, 2011 5:55 pm

Re: reverse engineering MROS of cubase

Postby tyk » Wed Oct 23, 2013 7:17 pm

deleted nothing new information

entripy
Atarian
Atarian
Posts: 2
Joined: Tue Dec 17, 2013 2:19 pm

Re: reverse engineering MROS of cubase

Postby entripy » Tue Dec 17, 2013 2:31 pm

I found an old copy of the MROS SDK, available at http://toot.org.uk/MROS.ZIP

The files are from 1993. I never did develop anything for MROS back then but hopefully the files will be useful for anyone attempting to develop new device drivers or reverse enginneer existing ones.

Dal
Administrator
Administrator
Posts: 4160
Joined: Tue Jan 18, 2011 12:31 am
Location: Cheltenham, UK
Contact:

Re: reverse engineering MROS of cubase

Postby Dal » Thu Dec 19, 2013 1:58 pm

This is a great find. Thanks!
Mega"SST" 12, MegaSTE, STE: Desktopper case, IDE interface, UltraSatan (8GB + 512Mb) + HXC floppy emulator. Plus some STE's/STFM's

Dal
Administrator
Administrator
Posts: 4160
Joined: Tue Jan 18, 2011 12:31 am
Location: Cheltenham, UK
Contact:

Re: reverse engineering MROS of cubase

Postby Dal » Thu Dec 19, 2013 1:59 pm

Thought I would upload it here as these rare gems have a nasty habit of disappearing shortly after they've bee rediscovered!
You do not have the required permissions to view the files attached to this post.
Mega"SST" 12, MegaSTE, STE: Desktopper case, IDE interface, UltraSatan (8GB + 512Mb) + HXC floppy emulator. Plus some STE's/STFM's

entripy
Atarian
Atarian
Posts: 2
Joined: Tue Dec 17, 2013 2:19 pm

Re: reverse engineering MROS of cubase

Postby entripy » Thu Dec 19, 2013 11:51 pm

Sadly these MROS SDK files only document the application API, there is no documentation for the driver API. I'm guessing the SDK was in two parts, one for application developers and one for driver developers. Only the relatively few people who developed hardware interfaces may have had access to the driver SDK.

So, about all these files give that's relevant to drivers is the device data structure. To write a new driver it seems that disassembling MROS is still the way to go.

User avatar
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Sat Dec 21, 2013 9:59 pm

as far as i can tell its complete ,
its still fashioned the same as the old midi bios #3 etc but with another trap installed
and the pointer to install a device handler for periphreal routines..

cool functionality and i still will stress these extra function/routines will cause latency if you are sequencing more than 16 tracks

drumatix sequencer used mros......cool again!

charlie
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!

User avatar
edingacic
Captain Atari
Captain Atari
Posts: 244
Joined: Mon Sep 07, 2015 5:16 pm
Location: Austria
Contact:

Re: reverse engineering MROS of cubase

Postby edingacic » Thu Feb 22, 2018 3:54 am

I remember reading somewhere might be on this forum about not to use MROS it was a strange writing probably translated to English maybe someone remembers this...?
Last edited by edingacic on Thu Feb 22, 2018 4:00 am, edited 1 time in total.

User avatar
edingacic
Captain Atari
Captain Atari
Posts: 244
Joined: Mon Sep 07, 2015 5:16 pm
Location: Austria
Contact:

Re: reverse engineering MROS of cubase

Postby edingacic » Thu Feb 22, 2018 3:56 am

i try to run MROSMIDI.PRG from this SDK package but I get no MROS message MROS not found! on the bottom and it closes the program right away. I am trying to run in on my TT030 in high res mono on TTM195

User avatar
edingacic
Captain Atari
Captain Atari
Posts: 244
Joined: Mon Sep 07, 2015 5:16 pm
Location: Austria
Contact:

Re: reverse engineering MROS of cubase

Postby edingacic » Thu Feb 22, 2018 4:00 am

edingacic wrote:I remember reading somewhere might be on this forum about not to use MROS it was a strange writing probably translated to English maybe someone remembers this...?

User avatar
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Thu Feb 22, 2018 5:06 am

prob set up hierarchy like Cubase disk ..then use mrosmidi and have 3_45 in folder ,,,does this install it?
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!

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

Re: reverse engineering MROS of cubase

Postby Cyprian » Thu Feb 22, 2018 9:43 am

EPSS has fully working Cubase MROS driver. I would suggest you to ask GemTwo (EPSS author) for some hints or mros driver sourcecode.
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
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Thu Feb 22, 2018 11:38 am

drumatix also uses mros
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!

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 » Thu Feb 22, 2018 8:56 pm

Cyprian wrote:EPSS has fully working Cubase MROS driver. I would suggest you to ask GemTwo (EPSS author) for some hints or mros driver sourcecode.


I think this might be a good idea. I e-mailed conny at copson (same person?) about MROS drivers but haven't got a response.

If I can learn how to write an MROS driver, it allows three potentially useful things to happen. I can add support for a couple of MIDI inputs to my future printer port MIDI expander device. Without writing a custom driver it will be eight outputs only. I can also add support for my modem port MIDI expander device, bringing another four outputs and even a couple of inputs.

It would make it much easier to reverse-engineer existing MROS drivers if I knew how they were put together. This would allow me to figure out how to add support for the SMP24/II and the MIDI3 to my own software.

I'm already some way towards reverse-engineering the Midex and Unitor.

One way to automatically gain support for all these MIDI expanders is to use MROS. But documentation on MROS is scarce, what's publicly available isn't really good enough to write a sequencer. I also measured terrible performance from Cubase, and I think MROS might be part of the problem.

mikro
Atari God
Atari God
Posts: 1682
Joined: Sat Sep 10, 2005 11:11 am
Location: Kosice, Slovakia
Contact:

Re: reverse engineering MROS of cubase

Postby mikro » Thu Feb 22, 2018 9:42 pm

Foxie wrote:
Cyprian wrote:EPSS has fully working Cubase MROS driver. I would suggest you to ask GemTwo (EPSS author) for some hints or mros driver sourcecode.


I think this might be a good idea. I e-mailed conny at copson (same person?) about MROS drivers but haven't got a response.

Why not write him here: memberlist.php?mode=viewprofile&u=26048

User avatar
edingacic
Captain Atari
Captain Atari
Posts: 244
Joined: Mon Sep 07, 2015 5:16 pm
Location: Austria
Contact:

Re: reverse engineering MROS of cubase

Postby edingacic » Thu Feb 22, 2018 11:08 pm

speaking of MROS there is this Mros Big Ben ACC that can be used with cubase but when i run it I get No Mros in memory? Anyone know about it. It is a big position clock addon.

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 7:48 pm

I've now disassembled and documented the MM1, Export and MO4 drivers. I've added a bit more clarification to the MM1 driver too. The sources are here:

MO4: https://pastebin.com/K1xnkHnT
Export: https://pastebin.com/NyE9M9fL
MM1: https://pastebin.com/NzBxAnYm

The Export driver is the simplest of the three. The MO4 driver is very ugly, probably because it was written partly in C. All of the drivers seem to contain some redundant code and variables.

User avatar
charles
10 GOTO 10
10 GOTO 10
Posts: 2369
Joined: Tue Aug 17, 2004 12:11 am
Location: ont. Canada
Contact:

Re: reverse engineering MROS of cubase

Postby charles » Fri Mar 30, 2018 8:36 pm

sadily I shouldn't say anything but great work !, unfortunately
none of these are on topic .
why not begin a new thread?
mros is the "midi realtime operating system "of Cubase ...

these listed files are just drivers from Cubase.

good work nethertheless.

better for search engines to locate having these in own topic , feel same way?
atari is my lifestyle,not a hobby.
HOLD ON ! ! !,
Im printing unreadable characters ...!


Return to “MIDI Software and Hardware”

Who is online

Users browsing this forum: No registered users and 2 guests