COHERENT 4.0 graphics workstation available

53 views
Skip to first unread message

Udo Munk

unread,
Oct 16, 2020, 12:34:34 PM10/16/20
to
Now with 3.x and 4.2.x systems in a state much to my liking I thought it's about time
to give 4.0 a bit love. First a bit about the history:

In 1992/93 many of us were happily running some kind of UNIX workstation, COHERENT
mostly in my case (yes, I also have used Minix and Linux at that time). Usually the systems
were text only on the console, and you had serial terminals, modems, printers and what
not connected to the boxes. Of course these PC's could be equipped with graphics
cards, in my 386 box I was using monochrome Hercules graphics, because I did not
like the pixelish CGA/VGA stuff available at that time. Whatever, we always looked a
bit jealous at the DOS/Windows 3 systems, running all kind of graphics games, demos
and so on. So most people build dual-boot systems, that allowed to boot either DOS
or some of the UNIX systems, so that you also could play a game from time to time.
Well, that DOS stuff was no fun to use at all, so something had to been done.

In 1992 someone provided vgalib for UNIX systems, that would allow user land
applications to access the VGA card in the system, switch it into graphics mode
and draw stuff on it. This library was ported to COHERENT, the MWC developers
worked together with the community to get hooks into the 4.0 OS, which would
provide the needed functionality. The community then developed a bitmapped
graphics driver which can be used by vgalib. At this time the COHERENT console
was not iBCS2 compatible, this was added to the 4.2 release, which made such
drivers superfluous. So from this time on it was possible to write VGA graphics
applications for such systems.

X11 was not yet available for COHERENT, but there was this Bellcore MGR window
manager, originally written for Sun workstations. A group of developers was formed
from Minix, COHERENT and Linux communities, to make MGR available on the systems,
I have been part of that. Not long after X11R5 became available for the systems,
people lost interest in MGR and the project abandoned and left in a not finished state.

I have now re-created a COHERENT systems that has all this graphics stuff installed.
MGR is not fully working, the serial mouse makes trouble, same as way back then.
All the graphics stuff is working, all the work has been done that requires a good
technical understanding of the software, the remaining problems should be easy to fix.

I'll give you a hint. It is no fun to run graphics software under control of a debugger
to find out what is going on. So I wrote a small example program that reads out
a serial mouse and allows to get this part more easily working. This example later
also made it into MWC/RTR X11, to help people figure out their mouse thing.
You should be able to find findmouse.c in the old software archives.

Last but not least, links for download and video:

https://www.autometer.de/unix4fun/coherent/ftp/vms/
https://youtu.be/ywUV7uzHJpY

In case of questions feel free to ask,
Udo

Udo Munk

unread,
Oct 17, 2020, 9:47:17 AM10/17/20
to
Had a closer look at the mouse stuff in the mgr server, nope, includes exactly
the code as I figured it out with mouse.c. There have been issues with poll()
and the pty's too in early OS versions, that all was fixed with 4.0 r77. Unfortunately
we don't have the r77 update disk. One could try with a r74 system, I have
imaged that disk and it is available. If nothing helps the MWC archive includes
sources for r78, some day I would like to have a look at that anyway...

Feeling like Doc Brown somehow, reading through the stuff we wrote 3 decades ago ;-)

Udo Munk

unread,
Oct 18, 2020, 4:45:10 PM10/18/20
to
I have build a r72 system, installed graphics driver, vgalib and mgr on this one.
Still same problem, mgr server gets stuck in the moment it receives events from
the mouse.

I made some changes to the r68 system and uploaded an updated version as well
as the r72 box. Both have mouse.c in home of root user to test the serial mouse.

With r72 MWC added a kernel link kit in addition to the device driver kit, which
allows users to add device drivers to a kernel without the DDK. In /conf you
can see what I have done, to add the graphics driver compiled on the DDK system
to the r72 kernel. A new kernel /testcoh can be build with:

cd /conf
kgen

Oh and the r72 assembler is buggy, one needs to use the r68 assembler for building
mgr. /bin/as on the system is linked to /bin/as.r68.

Udo Munk

unread,
Oct 19, 2020, 6:17:14 AM10/19/20
to
Now I have build a r74 system with all the required software. Much improvements
compared with the releases before, but still the mgr server gets stuck in the moment
one moves the mouse.

I though we had it fully working also on releases before r77, hm.
Whatever, if anyone wants to look at it use the r74 machine, at least gmake
runs on that one without crying and dying all the time.

Udo Munk

unread,
Oct 19, 2020, 6:16:00 PM10/19/20
to
Aha, got it working:

https://youtu.be/BbrclByIpSo

Serial mouse handling was pretty much screwed, I had to fix this. Tested on r74 so far only,
disk image for the VM should be available soon.

I have not yet bothered to install the man pages, that needs to be done and I want to
try it also on r72 and r68. Not sure if I fixed all Makefile, or if a build from sources
still requires manual work, this might need more clean up, but it's working again after
3 decades.

Udo Munk

unread,
Oct 20, 2020, 5:21:19 AM10/20/20
to
I also have build a 4.0.72 system which runs MGR fine. Updated disk image is available for download.

Udo Munk

unread,
Oct 20, 2020, 8:59:09 AM10/20/20
to
I have also updated the 4.0.68 box. On PCem MGR won't work, this version has
issues with the tty line discipline. On QEMU it works OK, because QEMU doesn't
try to emulate the serial chips accurate, and so doesn't care about a misconfiguration.

Anyway, nice timeline of the development that was going on in 1992/93.

Udo Munk

unread,
Nov 2, 2020, 12:56:08 PM11/2/20
to
I have uploaded new disk images with my 4.0.x installations. These now include
GNU make 3.62 build from source, so that this is GPL compliant. The default
make on the systems is GNU make, because this is required to build MGR.
The binary in /usr/local/bin will be used because of $PATH and also /bin/make
is linked to GNU make. To use MWC make rename /usr/local/bin/make and
link /bin/make to /bin/make.mwc. GNU make does't work well on releases
before r74 though.

Then I added unproto 1.7 (/usr/local/src), so that one can build programs
written in ANSI C.

On the r74 machine I installed the r78 kernel sources, which is the latest
version for the 4.0 release. I added the bit-mapped graphics driver, kernel
builds and boots OK. Graphics is not working anymore, GP fault, mapping
of the I/O ports and/or video memory of the VGA card not possible, needs
closer inspection what was changed.
Reply all
Reply to author
Forward
0 new messages