In the panoply of operating systems available for CoBra, OPUS has a special place. Written by Dieter Porr, a Romanian born in the town of Cristian in the county of Brașov, today active in the software business somewhere in Germany (as far as I've heard), OPUS is a perfect environment for Z80 machine code development, featuring a monitor program and a Z80 assembler. Starting with version 3.1 also features a BASIC decoder, from version 3.2 upwards also features a built-in tape copier and version 4.0 (the last one, I think) has an extended start menu which includes the BASIC decoder and the option to exit to BASIC.

Back in the day (early '90s) I designed an EPROM programmer based on Z80-PIO and the software I wrote for it would run under OPUS. At that time I thought OPUS was an operating system written by some foreign western programmers, it never crossed my mind it would actually be 100% Romanian, because I was under the impression that an operating system of this size could never be written by a Romanian. Now I have to admit I'm glad I was wrong.

As a side note, the CP/M utility COSYS.COM described at the CoBra BASIC section also bears the signature of Dieter Porr (DIPO'S).

The widely used OPUS version back then was 3.2. Today, on the Yahoo RHC forum I also found other versions, specifically 3.0, 3.1 and 4.0. I will show below the start screen of each one of these 4 versions, as well as two download links for each one, as binary image programmable in a ROM memory and as CP/M executable:

OPUS v.3.0 (Binary image) (CP/M executable)

I suspect 3.0 was the first published version. I don't know why, the classic logo (the owl) looks a little garbled in this version. Also the BASIC decoder does not exist here yet.

OPUS v.3.1 (Binary image) (CP/M executable)

Improved version, the BASIC decoder is introduced here, callable from the monitor using the command "E 3268". The code of this OPUS version is very different from the code of 3.0

OPUS v.3.2 (Binary image) (CP/M executable)

This is the most widely used version back in the day, at least in the inner circle of CoBra owners I was hanging around with. This is the first version to include a tape copier, which now takes up the place of the former BASIC entry in the start menu. The BASIC decoder is accessed the same way as in the previous version, from the monitor using the command "E 3268".

OPUS v.4.0 (Binary image) (CP/M executable)

In this version, the start menu is extended by two lines, showing again the BASIC entry existing in versions 3.0 and 3.1 as well as an entry for the BASIC decoder, which now also has a different start address and therefore cannot be called anymore from the monitor with the old command.

The OPUS User Manual

entered by me as text in Wordstar and saved as text file in CP/M

Aside from these versions, there is also a CP/M version, which claims to be able to work with floppy disks. It is found on the UTILS2 disk in my 3.5" CP/M floppy archive - the OPUSDISK.COM file. When started, this executable displays the start menu shown below. I did a little test run, which I will present next:

OPUS with floppy support - a little demo


Right after startup, the program displays a start menu with 3 options: monitor, assembler and return to BOOT ROM. The character set used seems identical to the one used by the ROM-stored OPUS version


Pressing the M key enters the OPUS monitor


I type the memory list command, in hex + ASCII, from address 0000.


After an ENTER, the contents of the first 128-byte page at address 0000 is displayed.


I leave the memory listing command using the Symbol Shift + Q key combination.


Next I will test the command used for changing the colors of BORDER, PAPER, INK. I type the command to set BORDER to blue, PAPER to red and INK to yellow.


After an ENTER the colors change.


I press the R key in order to test the command used to display the contents of CPU registers...


...and after an ENTER their contents is displayed.


I exit the register display comand by pressing the Q key.


I press Q again in order to exit to the OPUS main menu...


...and after an ENTER the menu is displayed.