Driver:InterPro

From MAMEDEV Wiki

Intergraph InterPro

The InterPro brand name refers to a range of computers manufactured by Intergraph. This article and the corresponding MAME driver focus on InterPro systems which used the CLIPPER processor and run CLIX, a port of UNIX System V release 3.1.

Introduction

While earlier InterPro systems did not use the CLIPPER CPU, from the mid 1980's this was the key common characteristic of the range. Originally developed by Fairchild, and then acquired by Intergraph, the CLIPPER is notable for being one of the earliest commercially available RISC CPUs, however it did not reach significant success outside Intergraph's own product line. The CPU was usually combined with an IEEE-754 compliant FPU, a first-level cache, TLB and MMU device originally known as CAMMU, clock control circuitry, and installed on a daughter-board that could be easily upgraded in the field.

InterPro systems based on the CLIPPER were first produced beginning with the InterPro 32C in 1986, and were manufactured up until 1993, ending with the InterPro 2800. The systems continued to be supported by Intergraph for a few years after this point, before being almost completely abandoned with very few operational examples remaining today.

CLIPPER-based InterPro systems share some other common features:

  • CLIX operating system (a licensed port of UNIX System V release 3.1)
  • Backward-compatible application software
  • SCSI hard disks (and later, CD-ROM drives)
  • AUI Ethernet port
  • PC-compatible 5.25" or 3.5" floppy disk drives
  • 3-button mouse and optional digitizing tablet
  • Keyboard featuring 85 regular keys plus 57 membrane function/macro keys
  • 3 RS-232 ports (via a 3-way breakout cable)
  • Large-format plotter interface port and logic
  • Boot EPROM containing a diagnostic monitor
  • Real time clock and NVRAM

Intergraph's primary markets for the InterPro were for 2D and 3D CAD, computer aided engineering, mapping and GIS applications, and this focus drove the development of relatively sophisticated graphics hardware acceleration and wide support for various 3rd party plotters and printers, especially for large-format output.

Status

The MAME driver for the InterPro is a work in progress, and is currently capable of booting and running the CLIX operating system and some software for the InterPro 2020. Some other models are capable of booting the diagnostic monitor and disk-based diagnostic utilities, but not yet able to install or run CLIX.

There are some known bugs in the driver at this time that can impact some of the instructions described below:

  • The driver doesn't reboot itself from software correctly yet
  • Sometimes, the mouse will stop working, typically after switching away and back to the MAME process
  • MAME fast forward works 99% of the time, but very occasionally can lead to failures that haven't been investigated yet

In all of these cases, the only current solution is to exit and restart MAME with the appropriate settings.

One last known bug relates to the keyboard emulation; occasionally some keys can get "stuck", and endlessly repeat, and in other cases require several repeated presses before a character is generated. Common candidates appear to be "f", "i" and "n", but the problem is not limited to these keys. Usually, the "stuck" condition can be corrected by hitting the Delete key both to clear the condition and to erase the unwanted characters. Typing more slowly and distinctly does seem to help, but does not completely avoid the issue.

Networking hasn't been tested at all under CLIX, so status is unknown at this point but errors or failures are not unexpected.

Hardware

Models

The CLIPPER-based InterPro range consists of 5 distinct generations or families, named after gemstones. The system models within each family share a common architecture and features, usually differing only by CPU type and clock speed.

Year Family Models CPU I/O Processor
1986 Amethyst 32C/100/200
300
C100 80186
80386
1988 Topaz 3000/4000/5000 C300/C300Plus 80386
1990 Emerald 6000/6100/6200/6500
6600
C300/C300Plus
C4
1990 Turquoise 2000 C300
1992 Sapphire 2400/6400
2500/2700/2800/6700/6800
C4T
C4I

For Turquoise and Sapphire (and with many exceptions, Emerald) systems, the four-digit model number encodes some aspects of the original system configuration, and breaks down as follows.

Position Purpose Values
1 Case 2=desktop, 6=minicase
2 CPU 0=C300, 4=C4T, 6=C4, 5/7/8=C4I
3 Graphics 0=none, 2=GT, 3=GT+, 5=GTII, 4=EDGE-1, 8=EDGE-2/2+
4 Backplane 0=standard, 5/7/9=?

As examples of applying this encoding, an InterPro 2020 is a desktop C300 system fitted with GT graphics (also referred to as memory mapped graphics, or MMG), while an InterPro 6880 is a minicase C4I system with EDGE-2 graphics. Systems configured without graphics are typically fitted with a serial terminal, and branded InterServe rather than InterPro. This model numbering and branding applies to the system cases, but of course changing graphics options will cause a system's software-identified model number to change.

Cards

A range of approximately 150 installable cards were produced for the CLIPPER-based InterPro family. The most common and important of these included the system mainboards and several different graphics options, however a range of less common cards supported functions as diverse as video capture, SCSI expansion, networking, hardware PC emulation and a VME bridge. Desktop InterPro systems support the installation of two cards in addition to the main board, in the horizontal plane and stacked vertically, using an interface referred to as CBUS. Larger systems supported either 5 or 12 vertically oriented slots (one occupied by the main system board) with an interface referred to as SRX, which is physically incompatible with CBUS, but shares a very similar logical interface.

Regardless of type, card product names are typically prefixed by the letter M, followed by PCB or SMT (the latter designation indicating a surface-mount board), followed by a 3-digit board number/type. Boards are also typically marked with a single character revision number and an ECO (engineering change order) level recording hardware-level fixes.

Keyboard

InterPro keyboard

The InterPro keyboard is split into two banks of keys, with the lower bank using key-switches mapped to standard alphanumeric, modifier and other typical keyboard keys, and the upper bank consisting of a membrane surface mapped to programmable function/macro keys. The keyboard connects to the host system using a six-conductor cable with an 8 pin mini-DIN connector. The keyboard communicates bidirectionally with the host using a 1200 bps TTL level serial protocol, with 1 start bit, 8 data bits, 1 stop bit and even parity.

The top row of keys on the numeric keypad correspond to programmable function keys 1-4, referred to as PF1, PF2, PF3 and PF4 respectively. These keys, along with the second row of keys on the numeric keypad (7, 8, 9 and keypad minus) are used during the CLIX rebuild process, and so must be mapped to enable completion of these instructions.

The keyboard has LED indicators showing disk activity, lock status, and several other symbols, and also has a square reset button and circular boot button on the back panel. These indicators and additional buttons are not currently implemented in the MAME driver.

InterPro keyboard layout

Configuration

Machine configuration

Diagnostics

Installing CLIX

Preparation

Use chdman createhd to prepare a new CHD for the operating system installation, and then chdman addmeta to apply a manufacturer string used to identify the drive make/model information that will be returned by the SCSI INQUIRY command.

chdman createhd -o ip2000.chd -chs 1574,7,70
chdman addmeta -i ip2000.chd -t IDNT -vt "MAXTOR  LXT-340S        1.00"

Other hard disk capacities should work but have not been extensively tested yet. The actual geometry should not matter at all, but the vendor and model strings are queried by the software and may affect the installation process, and there may be some impact if they do not match existing entries in the delivered CLIX /etc/disktab file.

The SCSI INQUIRY response data (defined by the IDNT meta-data tag in the CHD) should consist of an 8 character manufacturer name, 16 character model number, and 4 character version number, all left justified and padded with spaces.

The following table is a subset of data contained in the CLIX /etc/disktab file, so it's reasonably likely that any of these drive geometry and make/model combinations will work without problems.

Manufacturer Model Description CHS Intergraph Designation
Maxtor LXT-213S 200MB 3.5" 1314,7,53 MDSK017
Maxtor LXT-340S 340MB 3.5" 1574,7,70 MDSK027
Seagate ST1480 426MB 3.5" 1476,9,74 MDSK048
Maxtor MXT-540SL 540MB 3.5" 2466,7,87 CDSK068
Seagate ST11200N 1GB 3.5" 1872,15,92 MDSK315
Conner CFP2107S2 2.14GB 3.5" 3959,10,123 CONNERCFP2107S2.14GB
Seagate ST34371N 4GB 3.5" 5167,10,163 SEAGATEST34371N
Seagate ST19171N 9GB 3.5" 5273,20,166 SEAGATEST19171N

Rebuild Utility

This section describes starting the InterPro and using the rebuild utility to configure the machine and begin the CLIX installation process. There are two versions of the rebuild utility: a GUI version which requires the InterPro mouse, keyboard and graphics hardware, and a text-based version which uses a serial terminal connected to the system console port instead (typically used with headless InterServe system configurations). Proceed with the instructions in either of the two following sections depending on your preference, or whether graphics hardware support is available.

Please note that while the MAME built-in serial terminal is capable of running the rebuild utility satisfactorily, it is not sufficient to execute the subsequent CLIX installation procedure (described in Rebuild Environment) due to a lack of VT100/VT220 display control commands and function key support. In addition, unlike the GUI utility, it is not possible to boot directly into the rebuild environment from the console without completing the full media loading process. For these reasons, it is necessary to use an external terminal emulation with adequate VT100/VT220 features in order to perform CLIX installation in serial console mode.

Rebuild Utility (GUI)

Start the ip2000 driver with the Turquoise "rebuild" floppy disk in the floppy drive and the hard disk connected. Make sure you have the MAME in-emulation menu enabled so you are able to switch floppy disks later in the process.

mame ip2000 -flop rebuild:boot_clipper -hard ip2000.chd -ui_active

If sound is enabled, you should hear two beeps as the keyboard is initialised, and then see I/O system monitor boot message, followed by the "blue screen" utility program.

  1. Use the mouse to select the Utility button, and from the Utility home page, select the Rebuild Utility button.
  2. Under Step 1, select the Default button to create a default partition table on the hard disk. If you wish, you can examine and modify this default partition table by navigating back to the Utility home page, and using the Disk Partitioning Utility to make changes before loading the rebuild media.
  3. Once the partition table has been created, re-enter the Rebuild utility page if necessary, and use the MAME in-emulation menu to load the Rebuild Floppy #2/4 (rebuild:20x0_root2) floppy disk image, then select the Load button under Step 2 and hit Enter.
  4. The utility should indicate progress on screen, and prompt you to repeat the process for floppy root images 3 and 4 in sequence.
  5. After the rebuild media has been loaded, select the Boot button to enter the rebuild environment.

If you need to restart MAME at any point after the rebuild media has been installed, you can repeat the steps above (that is, boot from the rebuild:boot_clipper floppy, and enter the Rebuild Utility), and then proceed directly to Step 3.

Rebuild Utility (Serial Console)

Start the ip2000 driver with the following configuration:

  • Without a graphics board installed
  • Without a keyboard connected
  • With a serial loopback device connected to serial port 2
  • With the serial loopback connected to a TCP/IP socket
  • With the Turquoise "rebuild" floppy disk in the floppy drive and the hard disk connected
  • With the MAME in-emulation menu enabled to allow switching floppy disks during the process
mame ip2000 -slot:0 "" -kbd "" -serial2 null_modem -bitb socket.127.0.0.1:1234 -flop rebuild:boot_clipper -hard ip2000.chd -ui_active

Once MAME has started, but before dismissing the warning message, launch your terminal emulation program and connect to the TCP/IP socket specified. On Windows, PuTTY may be used as follows.

putty telnet 127.0.0.1 1234

Rebuild Environment

After a few seconds, you should see the initial CLIX boot messages, and shortly after see the Welcome to Rebuild text-based user interface.

  1. Use the key bound to the keypad minus key to continue, and then press Enter to select the Rebuild all menu option.
  2. Use the key bound to PF3 to save the file system settings, and the rebuild environment should begin to rebuild the root and usr file systems; this process may require around 5 minutes to complete.
  3. Use the arrow keys to navigate to the Load Software option, press Enter to proceed, then select the Local CD/ROM option.
  4. When prompted, use the MAME in-emulation menu to load the System Software Disc I (iss:disc1) CD-ROM image, and press Enter.
  5. Once the newprod utility has launched, press "a" to auto-select all the necessary software, and "u" to begin the installation process. The process will prompt for a variety of installation options; generally defaults are acceptable, but may be changed at your own discretion. This process normally requires at least 30 minutes to complete.
  6. Once software installation is complete, accept the prompt to remove the rebuild environment, press PF1 to cancel from the Download software menu option, and select the Reboot option. Once the System reboot in progress message is displayed, exit MAME.

Boot CLIX

Once the system rebuild process is complete, the I/O System Monitor, blue screen utilities, and the CLIX operating system itself should be able to be booted directly from the hard disk.

mame ip2000 -hard ip2000.chd

At the initial boot into CLIX, the system will automatically launch the Distributed System Management (DSM) utility, and begin the First-time System Setup process to configure TCP/IP networking and some other basic settings. This utility can be operated by selecting the menu options, responding to configuration prompts and using the PF keys to toggle choices, save settings or exit the program. Once complete the system should be restarted again and the standard CLIX environment is ready for use.

At the first start of the standard CLIX environment, and depending upon the options applied in DSM, the root password may have been automatically expired. The simplest way to reset it is to expand the Console desktop icon, and log in using that window. This will enable the root password to be reset, after which the Workstation User window of the screen manager may be used to log in normally.

At this point CLIX is ready for use. You may use the newprod utility to install additional software from the Intergraph System Software CD-ROM images.

Note: EnvironV uses the middle mouse button as the standard "action" button, while the left button is normally used to open menus and the right button used to cancel an operation.

References

The following are various Intergraph manuals documenting InterPro systems.

Reference Title Date Links
DSA025120 CLIPPER Hardware Setup and Maintenance Guide Jul89 [1]
DSA025121 CLIPPER Hardware Setup and Maintenance Guide Changes Pages Jan90 [2]
DSA026330 CLIPPER Software Delivery Guide Sep90 [3]
DSA029910 CLIPPER System Administrators Guide Jan90 [4]
DSA029911 Change Pages for CLIPPER System Administrators Guide Jun90 [5]
DSA029912 Change Pages for CLIPPER System Administrators Guide Sep90 [6]
DSA030010 CLIPPER Users Guide Jan90 [7]

The following documents are by various authors and address the CLIPPER CPU and related topics.

Reference Title Date Links
CLIPPER™ 32-Bit Microprocessor Module: Instruction Set Oct85 [8]
UCB/CSD 86/289 The Memory Architecture and the Cache and Memory Management Unit for the Fairchild CLIPPER Processor Apr86 [9] [10]
AD7640011 CLIPPER™ 32-Bit Microprocessor: Introduction to the CLIPPER Architecture May86 [11]
UCB/CSD 87/329 The Fairchild CLIPPER: Instruction Set Architecture and Processor Implementation Feb87 [12] [13]
Introduction to the CLIPPER Architecture Aug87 DOI
DCLP1000 CLIPPER™ C100 32-Bit Compute Engine: Data Sheet Dec87 [14]
CLIPPER© C300 32-Bit Compute Engine [15]
The CLIPPER™ Processor: Instruction Set Architecture and Implementation Feb89 [16] DOI
Design and Implementation Trade-offs in the Clipper C400 Architecture Jun91 [17] DOI
Future Directions in CLIPPER Processors Mar91 [18] DOI
The C400 Superscalar/Superpipelined RISC Design Mar91 [19] DOI
C400 data sheet [20]