MI = MachineInterface
Dies entsprecht quasi dem Assembler anderer Maschinen.
Wie MI aussieht, kannst du bei einer RPG-Umwandlung mit der Option *LIST betrachten.

Mit MI kann man nicht mehr machen als mit HLL-Sprachen wie COBOL/RPG/ILERPG, eher sogar weniger, da sämtliche IO-Zugriffe nicht Bestandteil von MI sondern undokumentierte API's (also CALL's) sind.
Mittels MI-Compiler (bzw. CRTPGM-API) lassen sich OPM-Programme erstellen und beliebig aufrufen.

Wesentlich komfortabler ist inzwischen ILERPG mit der Einbindung von C-Funktionen, da ggf. einige MI-Befehle mittels C-Befehl erreichbar sind.

Wers braucht kann damit USRSPC oder USRIDX bearbeiten.
Interessant ist ggf. die Anlage eines USRSPC mit länger als 10 Zeichen (MI-Arbeitet bei Objekten nämlich mit 30-stelligen Objektnamen).
Diese können nämlich nur per MI auch wieder gelöscht werden.