Tommy's DMD page


Image taken in about 1993, Ivers Hall, Concordia College, Moorhead MN.

This is a DMD-5620 terminal, also called a Blit or JERQ terminal. That stands for "Dot Mapped Display", it came out in 1984 and the term "bitmap" had not quite been standardized yet. It is sometimes called a JERQ terminal, a pun on PERQ, which was an earlier graphical computer.

Its display is 800x1024 pixels, one bit per pixel, interlaced, with extremely long persistence phosphor. Or in text mode, 88 by 70 characters. The DMD-5620 is an intelligent terminal, it has its own processor, a Western Electric WE32000 processor. That is the same family as used in the AT&T 3B2 computer, which the DMDs were typically connected to. It has 1 MB of memory on board, as well as a local printer port.

If the DMD had been build in the 90's instead of the 80s, it would have been called a "network computer". The LAN of the 80's was 9600 bps RS-232 serial cables, going to a local mini-computer which hosted all of the data and software.

Needless to say, running a GUI over a serial cable would not be very fast... So executables were downloaded to the terminal's memory and executed locally, where they could be responsive.

The windowing system is named layers, and was written by Robert Pike, among other people. He would go on to write Plan 9's 8\textonehalf windowing system, which is visually nearly identical.

All of the host software was opensourced in the 90's, and I have been porting it to modern 64 bit FreeBSD with a large blunt object. There are a great many places which assume pointers and integers are the same size, and several variable names are now C keywords.

It's mouse is still the most comfortable mouse I have ever used.

Stuff from other people

My Stuff

Layers, 32ld, and jx work... binaries built on a 3B2 will happily download and run, but they must be run through m32conv to switch around the word order in the headers (claim to be a vax). However the compiler is not the happy camper, the .o files have incorrect lengths. The problem is that 64 bit pointers don't fit in 32 bit ints and all of the padding is different. All the file structures are parsed by reading into a buffer and putting a struct on top of them.

DMD Mouse pinout

A smallymouse can be connected directly (no inverters needed) and the DMD's 5V pin will power the smallymouse just fine.