The AT&T 7300 Unix PC

- The second oldest file in the QRetail code base, dated 23 December 1985 at 12:06 PM, is computers.h with the following content:

/*************************************************************/
/*   COMPUTER.H - Computer Dependent Definitions             */
/*************************************************************/
/*   IBMPC                                                   */
/*************************************************************/
#ifdef  CO_IBMPC
#define CO_NAME "IBM Personal Computer"
#endif

/*************************************************************/
/*   ATT7300                                                 */
/*************************************************************/
#ifdef  CO_ATT7300
#define CO_NAME "ATT 7300 Personal Computer"
#endif

(The oldest file is chrchar.h containing character display codes such as DS_HBR2 for a double borizontal bar. It’s just a few minutes older at 12:03 PM.)

Note the ATT7300 there. That was a computer marketed by AT&T in the mid to late 1980s. It ran Unix System V release 2 with some BSD extentions, and later System V release 3. For hardware it had a Motorola MC68010 CPU, 512 KiB RAM (max 4 MB), a green graphics-capable screen, and hard drives with capacities ranging from 5 MiB to 67 MiB.

The system was packaged in an all-in-one case, although some models had a detachable keyboard. And the keyboard had a very interesting layout, which I attempt to reproduce here:

  ╔═══════╦═══════╗ ╔═════╦═════╦═════╗ ╔═════╦═════╗ ╔═════╦═════╦═════╗ ╔═══════╦═══════╦═══════╗
  ║       ║ Rstrt ║ ║     ║ Call║     ║ ║     ║     ║ ║     ║     ║     ║ ║ ^     ║ ^     ║ ^     ║
  ║ Clear ║       ║ ║ F1  ║ F2  ║ F3  ║ ║ F4  ║ F5  ║ ║ F6  ║ F7  ║ F8  ║ ║ Exit  ║ Msg   ║ Help  ║
  ║ Line  ║ Ref   ║ ╚═════╩═════╩═════╝ ╚═════╩═════╝ ╚═════╩═════╩═════╝ ║ .     ║ .     ║ .     ║
  ╠═══════╬═══════╣ (Function keys are larger than shown. The gaps before ╠═══════╬═══════╬═══════╣
  ║       ║       ║ and after the F4/F5 pair are about three keys wide.)  ║       ║       ║       ║
  ║ Creat ║ Save  ║                                                       ║ Suspd ║ Rsume ║ Opts  ║
  ║       ║       ║                                                       ║       ║       ║       ║
  ╠═══════╬═══════╣                                                       ╠═══════╬═══════╬═══════╣
  ║       ║       ║  STANDARD ALPHANUMERIC KEYBOARD HERE                  ║       ║ Close ║       ║
  ║ Undo  ║ Redo  ║  (Wider than shown)                                   ║ Cmd   ║       ║ Cancl ║
  ║       ║       ║                                                       ║       ║ Open  ║       ║
  ╠═══════╬═══════╣                                                       ╠═══════╬═══════╬═══════╣
  ║       ║       ║                                                       ║  ^    ║ Clear ║  ^    ║
  ║ Find  ║ Rplac ║                                                       ║ Print ║       ║ Page  ║
  ║       ║       ║                                                       ║7 .    ║8 Rfrsh║9 .    ║
  ╠═══════╬═══════╣                              ╔══════════════╦═══════╗ ╠═══════╬═══════╬═══════╣
  ║       ║       ║                              ║ Return       ║ Enter ║ ║       ║       ║       ║
  ║ Move  ║ Copy  ║                              ║              ║       ║ ║ Beg   ║ Home  ║ End   ║
  ║       ║       ║                              ║              ║       ║ ║4      ║5      ║6      ║
  ╠═══════╬═══════╣                              ╚══════════════╣       ║ ╠═══════╬═══════╬═══════╣
  ║       ║       ║                                             ║       ║ ║       ║ Roll  ║       ║
  ║ Dlete ║ Dlete ║                                             ║       ║ ║ Prev  ║   ^   ║ Next  ║
  ║       ║ Char  ║                                             ║       ║ ║1      ║2  |   ║3      ║
  ╠═══════╬═══════╣                                        ╔════╩══╦════╝ ╠═══════╬═══════╬═══════╣
  ║ Slect ║       ║                                        ║   @   ║      ║       ║ Roll  ║       ║
  ║       ║ Input ║                                        ║ Num   ║      ║   ║
  ║ Mark  ║ Mode  ║                                        ║ Lock  ║      ║-      ║0      ║       ║
  ╚═══════╩═══════╝                                        ╚═══════╝      ╚═══════╩═══════╩═══════╝

In the above representation I had to limit myself to single-wide characters; my current editor (Kate) and browser (Firefox) don’t really like a combination of regular ASCII and wide UTF-8 characters in a monospace font. So the caret and dot on the Exit, Msg, Help. Print, and Page keys are actually⏶and ⏷, and the |, <--, --> symbols on numeric keypad are actually the standard “inverted T” set of arrow characters:

  
  

Note there’s both a Return and Enter key, but I don’t know if they sent different codes. There are two Ctrl keys (left and right of the space bar) but no Alt/Meta key. If this design was still in use today either would have been added or one of the Ctrl keys could be remapped.

Another interesting thing is the monitor had a reserved area at the bottom for labelling the function keys. The labels could be set using a special character sequence to stdout, where the terminal would pick them up.

Also of note is the fact ncurses has a complete support for this 80s era machine!