Rational/R1000s400

2024-02-04 Lookin' good
The museum was open to the public today and we used the real Facit terminal to log into the emulator:
Seems to work, as expected, but it is slooooow…
2024-07-27 Making sense of things using the emulator
Having the emulator means we can now spelunk the R1000 system from the comfort of home, and as time and energy permits, we are starting to make sense of some things now.
All complex systems have their own vocabulary: Normal people "boot" their computers, but IBM "IPL" (=Initial Program Load) them, and I am sure other computer manufacturers have used other words.
When we started spelunking the data structures of the R1000, we had no access to the original Rational vocabulary for the lower levels of the system, and so resorted to stick likely words on the structures we dug out.
Being able to safely try things out in the emulator, provides us hints and glimpses of the official vocabulary, for instance by poking the kernel CLI interface:
*Kernel: show_space_info VPID [266]: 8 KIND [MODULE]: INSTRUCTION SEGMENT [2460516]: 4289 SNAPSHOT_NUMBER [63969]: 1 THE_SPACE => ( 8,INSTRUCTION, 4289) COMMIT_TIME => 1 FAMILY => (UP => 7, PROC => 0, SEQ => 779) PERMANENT => TRUE IMPERMANENT => FALSE VER_CONTROL => COMMIT_BY_REQUEST GENERATION => 2 COMMITTED => TRUE PAGE_COUNT => 1 DELETED => FALSE USER_DATA => 1: unknown OBJECT => Manager 0Instance 1
(The missing space between '0' and 'Instance' on the last line is a genuine R1000 kernel bug)
Here we learn that what we called a "segment" is actually a "space".
In retrospect, we should have caught a clue sooner, because the backup tape has a file for each disk, named "Space Info Vol X" in the ANSI tape labels.
Poking the kernel CLI further, by we learn that they come in at least three fundamental types: "INSTRUCTION", "MODULE" and "IMPORT", and we can even locate the kernel code which produces that output in a code segment in the DFS filesystem.
And as luck would have it, a typing mistake revealed more useful information:
*Kernel: show_space_info VPID [4]: 4 KIND [IMPORT]: IMPORT SEGMENT [256302]: 4450606 EXPECTED VALUES ARE: 0 .. 4194303
All computer geeks will recognize that number as 2^22-1, so the identity of a space consists of 10 bit VPID, 2 bit KIND and 22 bit SEGMENT.
We also spotted a number of different values in the USER_DATA field, and were able to locate those strings to a kernel code segment in the DFS filesystem, and from that derive the complete list.
Here it transpired that the 0xe3 value which we had assumed was "ada source code" is actually "Image: Permanent editor buffers", which explains why there are so (relatively) few of them.
But we also run into new mysteries: The "Space Info" files on the backup tape does not contain the actual snapshot number, called COMMIT_TIME by the kernel CLI, but it has a number which somehow translates to the snapshot number, at least for some of the spaces.
2024-02-03 First official release of the emulator
We have created the first official release of the emulator.
2024-02-02 The proof of the pudding…
The first successful run of the emulator was in the development tree, where experiments with the "remote diagnostic" facility had left the COMM port configured for an X.25 PAD, and therefore it was not possible to log into that port.
A new run from the release-candidate tree did not have that problem:
2024-01-28
This past weekend our software emulation of the R1000/s400 finally managed to boot the Rational Environment.
The software emulation runs 400 times slower than the actual hardware, and is therefore not very practical to use, but having it means that both the Rational R1000 Architecture and the Rational Environment is now preserved for future generations, even if and when the remaining few exemplars of the hardware fail to function.
History
The Rational R1000/s400 is the final and smallest member of the worlds probably first only and last "Ada-only" Computer.
Rational set out to build an integrated development environment, and found out that contemporary (early 1980ies) computers could simply not execute it fast enough, to make it attractive in the marketplace, so they built their own computer to execute Ada and the Environment, and only that.
The R1000, which is functionally unchanged through the four series, is a stack based architecture inspired in part by the Burroughs 6700, but focused entirely on the data model and tasking model of Ada, so that for instance the notoriously difficult to implement Ada Rendez-Vous mechanism executes in a single instruction.
Terma, a danish aerospace manufacturer, donated their last Rational R1000 s400 computer to us in 2009, including its original shipping crate in nearly spotless condition, along with 1.5 meter of manuals, and blank disk drives, but no software at all, because its classified past required it to be "sterilized".
Software, and another machine and various spare parts, were donated to us in 2019 by Pierre-Alain Muller, presently Vice-President of Université Haute Alsace, but previously responsible for Rationals European support organization.
Hardware Architecture
Considering the size, there is a surprising amount of hardware packed into the cabinet:
Ethernet ┍━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┑ 72 VAL+PARITY TCP/IP │ │ │ │ │ │ │ ┍━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┑ 72 TYP+PARITY ┌────┴────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┍━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┑ │ │ 72 FIU+PARITY │ CMC/ENP │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑ 9 CHECK BITS └────┰────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ │ │ │ ┍━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┯━━━━━━━━━━━┑ 9 CONTROL ┃ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌────┸────┐ ┌─┴─┴─┴─┴─┐ ┌───┴───┴─┴─┐ ┌─────┴─┴─┴─┐ ┌───┴─┴─┴─┴─┐ ┌───┴─┴─┴───┴─┐ ┌─┴─┴─┴─┴─┐ ↑FOREPLANE↑ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ RESHA ╞═╡ IOC │ │ VAL │ │ TYP │ │ SEQ │ │ FIU │ │ MEM × 2 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬─┬─┬┘ └┬─┬─┬─┬─┬┘ ↓BACKPLANE↓ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┕━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┙ │ │ │ ┕━━━━━━━━━━━━━┙ │ 15 UADDR / 10 MEMCTL │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ I/O ports │ │ │ │ ┕━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┙ │ │ │ 76 ADDRESS │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ SCSI - disk ┕━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┙ │ │ 3 CLOCKS SCSI - tape │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Phone ┕━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┙ │ 2 DIAGS Console │ │ │ │ │ │ │ │ │ │ │ Serial port ┕━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┙ │ │ 12 CONDITIONS Ethernet (cluster) │ │ │ │ │ │ ┕━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━┙ 64 POWER
The main processor consists of the VAL(ue), TYP(e), SEQ(uencer) and F(ield)I(solation)Unit, each occupying a printed circuit board a half meter on both sides.
The I(nput)O(utput)C(contoller) is that, but it is also a computer in it's own right, a 68K20 running an operating system with a file system, a command line shell, utility programs etc.
The (R)ational E(thernet) S(csi) H(ost) Adapter) is basically a large printed circuit board with all the I/O devices which did not fit on the IOC, to which it is connected by the "normal" 68k bus from the IOC.
The "CMC/ENP" is a 3rd party 68K20 VME board which runs the TCP/IP stack.
The s100 model
The first version of the R1000 was the s100 model, which was a four processor machine.
Michael Druke has kindly shared these pictures of the s100 back-plane he has saved in his basement:
Each of the four CPUs would also have a front-plane spanning just the cards of that CPU.
Each CPU consists of "SYS", "VAL", "TYP", "SEQ", "FIU" and from one to four "MEM" boards. At far left (when seen from the back) four slots named I0…I3 contain cards which connect the CPUs to the PDP-11 I/O processor in another rack.
In total the backplane has 40x360 = 14400 pins for all the cards.
The square metal blocks at the bottom connects to the power supplies which delivers more than 5 kW of power at 5 Volt.
Activities
Ten year project status summary
Log book of our activities with the R1000 computer
Pictures
The tapes we have borrowed from Pierre-Alain-Muller
Technical and other obscure information
- Rational/R1000s400/PCB Pictures
- Rational/R1000s400/ChipMaps
- Rational/R1000s400/TCB_Cheatsheet
- Rational/R1000s400/DiskLayout
- Rational/R1000s400/SCSI2SD
- Rational/R1000s400/Booting_PAM_Images
- Rational/R1000s400/Content_of_PAM_Images
- Rational/R1000s400/Shutdown_For_Beginners
- Rational/R1000s400/TCPIP
- Rational/R1000s400/Hardware Inventory
- Rational/R1000s400/Software Inventory
- Rational/R1000s400/How the R1000 boots
- Rational/R1000s400/Random Technical Details
- Gary Davidian Oral History at CHM, (Rational stuff starts at 58:08)
See Also
- Our R1000 software emulation project on github
- Our scanned R1000 Online Documentation
- Computer History Museums similar machine
- Julians R1000 stories
- Search google for "Rational R1000"
- Fil:US patent 4,791,550 Higher order language-directed computer.pdf
- Fil:US patent 4,736,287 Set Association Memory System.pdf
- Fil:US patent 4,766,536 Computer Bus Apparatus With Distributed Arbitration.pdf
- Fil:GB patent 2 161 001A Distributed microcode address for computer.pdf
- [Gary Davidian's oral history @CHM]
Possible leads
- Walter A. Wallach's DG patents: 4517642, 4516203, 4514800