Museumslogo   Curator   Index  Links   Projekte News 
  
  
Unternehmen
sonst
<--                              -->

HONEYWELL 316
general purpose computer



Honeywell 316 computer. USA, 1970

Mit der DDP 116 stellte die Firma Computer Control Company (3C) 1964 einen noch mit Transistoren aufgebauten Universal-Rechner mit 16 Bit Wortbreite vor. Architektur und Konzeption des Rechners fanden sich - mit entsprechend zeitgemäßen Logik-Elementen höherer Integrationsdichte aufgebaut - auch in den Folgemodellen DDP 416 und DDP 516 wieder. 3C war da bereits an die Honeywell Company verkauft und firmierte nunmehr unter "Computer Controls division of Honeywell".

Aus der Serie dieser Rechner kam 1969 die Honeywell 316 (H316) auf den Markt, dicht gefolgt von der H716, das letzte Modell dieser Reihe, bevor Honeywell die Serie 16  trotz weitreichenden auch wirtschaflichen Erfolges einstellte (eine irgendwie nachdenklich stimmende Geschichte, vorallem auch, weil in etlichen Erfahrungsberichten (Alumnis) die sehr kollegiale und inspirierende Arbeitsatmosphäre und der innovativ-freudige Geist des Unternehmens 3C hervorgehoben wird). 

Das Bild oben zeigt die Honeywell 316 mit Seriennummer 493 in der Sammlung. Der Rechner wurde 1970 vom Max Planck Institut für Radioastronomie Bonn beschafft und am Radioteleskop Effelsberg installiert. Dort hat die H316 nach der mir überlieferten Geschichte bis 1983 gerechnet. Belegt ist im Nachlass noch eine, in Assembler geschriebene Anwendung, die Empfängerdaten sammelt, aufbereitet (FFT) und Frequenzspektren auf einem Bildschirm ausgibt.

Nach iherer Außerdienststellung lagerten Rechner, Netzteil mit Voschalt-Trenntrafo, ein Lochstreifenleser, Verkabelung, Dokumentation und ein Sack voll Software auf Lochstreifen unbenutzt aber gut behütet im Keller eines ehemaligen HONEYWELL Service-Ingenieurs; 2025 gelangten das Los in das Museum-NT.

Mal sehen, ob sich die H316 nochmal ans Rechnen bringen lässt. Die Restaurierung beginnt im Januar 2025 mit der Sichtung und Inbetriebnahme des abgesetzten Netzeil-Einschubs.



           
Honeywell 316 computer. Inbetriebnahme AULT-Netzteil. 

Auf den ersten Blick kommt in der Honeywell H316 ein verhältnismäßig einfach gehaltenes 115V-Netzteil zum Einsatz - ein von der Firma AULT mit der Bezeichnung PR-130 gefertigter Einschub, der die vier erforderlichen Gleichspannungen nebst einer Elektronik für Ein- und Abschaltverhalten bereitstellt. Ledeglich die +15,5 V Spannung wird - mit einem Linearregler - elektronisch geregelt.
Bei näherem Studium, vorallem der Einschaltautomatik, zeigt sich dann eine ausdifferenzierte Schaltung, die für ein harmonisiertes Anfahren der Betriebsspannungen und Schaltkreise des Rechners sorgt. Auf der Primärseite des Transformators wird eine zusätzliche, damals nicht ungewöhliche kapazitive Resonanzwindung verwendet. Das Ganze nennt sich dann "constant voltage transformer" und kann mit einer kleineren Modifikation wahlweise bei 50 Hz oder 60 Hz Netzspannung betrieben werden. 

Siehe Bild oben - ich habe einige Anläufe mit Belastungswiderständen und dem Einregeln der entsprechenden Potentiometer benötigt, um das Netzteil zuverlässig und stabil wieder in seinen Arbeitspunkt zu bringen. Bemerkenswerterweise spielten Elektrik und Elektronik nach Befreiung von Staub und Reinigen und Ölen des Lüfters auf Anhieb mit. Vorab hatte ich die vier großen Becher-Kondensatoren einzeln geprüft und angefahren.

Der abgesetzte Rechner hält - für das Netzteil essentiell - den Hauptschalter, ein Cut-off Relais sowie einen Temperatur-Sensor bereit. Das Netzteil widerum liefert dem Rechner neben den Betriebsspannungen ein Power-Status- und ein Fault-Signal (Fehlerfall: "drop to ground"). 
Gut zu wissen, wie das Netzteil "tickt"!  - und es zeigt sich bei mehrstündigen Tests als konstant und stabil.
Der eigentliche Rechner-Einschub (Mainframe) wird vermutlich etwas aufwändiger:



           
Honeywell 316 computer Mainframe. Ansicht von oben, Fundzustand (2024).

Nach fast 40 Jahren Aufbewahrung in einem Keller zeigt sich im Rechner Mainframe: Die Ummantelungen aller Kabelbündel sind spröde und zerfallen schon beim Anheben des Kabelstrangs, viele Kontakte sind korrodiert, bemerkenswerterweise grün, also vermutlich ein Kupfersalz und viele Steckkarten sitzen fest. Trotz viel Staub und Schmutz sind die Bezeichnungen der Module und Platinen aber noch hinreichend leserlich und lassen mit Hilfe der Papier-Dokumentation eine erste Bestandsaufnahme zu:
 
Bestückung des Mainframe Drawers:
   Central Processor Logic mit ASR Interface Card und 4k Memory Core Plane
   Option High Speed Arithmetic
   Option Parallel Input/ Output Channel
   Option Memory Expansion Moduls (3 mal)
   Option Paper Tape Reader
   Option Priority Interrupt (4 Channels)
   Option Data Multplex Control (SDMC)

Das Bild rechts zeigt die Bestückung aus den Lieferunterlagen vom April 1970.
Der Rechner wurde offensichtlich mal um weitere insgesamt
8K Memory aufgerüstet.
Für das Paper Tape Punch-Modul (PTP) blieb dann allerdings
kein Platz mehr. (Das Modul fand sich aber noch in einem Karton).


Die Vorderseite des Rechners lässt sich aufklappen und ermöglicht den Zugang zum Bedienpanel und zur rechnerseitigen Elektrik (siehe Bild unten). Die abgehenden blauen Kabel für den Lüfter rechts führen zu einem eigenen 230V Anschluss - ein Serviceeinsatz offenbar in Ermangelung eines 115V Lüfters. Das lässt sich heute für wenig Geld beschaffen: einen noch fabrikneuen PAPST-Lüfter mit gleichen Einbaumaßen. Die übrigen Lüfter ließen sich leicht ausbauen, reinigen und ölen. Die Kabelstränge, die Netzteil und Rechner miteinander verbinden, erhalten je einen neuen Gewebeschlausch.



           
Honeywell 316 computer. Aufgelegte Anschlüsse für die Elektrik im Mainframe.



01.02.2025 - Richtfest: Der unbestückte Rechner lässt sich anschalten, das Relais im Frontpanel zieht, die Lüfter laufen, alle Betriebsspannungen sind auch an den Steckkarten-Buchsen präsent und stabil. Es gibt keine Kurzschlüsse. (Im Mainframe sind alle Karten zunächst mal gezogen, siehe Bild unten).
Noch ein Hinweis zur Elektrik: Alle Betriebsspannungen, die das Netzteil liefert sind erdfrei und es wird ein separater Bezugspol geführt (COMMON, schwarz).
Die Verbindungskabel zwischen Netzteil und Mainframe führen keinen Schutzleiter -  da das 115V-Netzteil an diesem Punkt mit einem Spartrafo betreiben wird, ich habe die Gehäuse der beiden Einheiten extern elektrisch miteinander verbunden.



           

Honeywell 316 computer. Aufbau und erster Start mit Netzteil.

Nach dem Richtfest folgt eine Sisyphusarbeit: Reinigen und Sichtkontrolle der Steckkarten (die Steckkarten trugen bei 3C den Markenname µ-PAC).  Bei dieser Gelegenheit habe ich auch die Kontakte gereinigt und die Spannungszufuhr auf Kurzschluss geprüft. Das dauert, macht aber auch den Rechneraufbau erfahrbar. Untenstehend zwei typische µ-PACs: Links Steckkarte DI335 mit den Bausteinen F01 (Dual NAND Gate) und F02 (Quad NAND Gate). Rechts der Inhibit-Treiber aus dem Kernspeicher-Modul - der durchgebrannte Tantal-Kondensator ist zu erkennen.
Es ist nicht nicht der Einzige, der sich bei der "heißen" Inbetriebnahme verabschiedet hat (es knackt dann direkt nach dem Einschalten leicht).



    
       Honeywell 316: µ-PAC Steckkarten

Was wir noch zeigen müssen ist der Kernspeicher: Ist das nicht ein Kunstwerk ?
Ich habe mit einer großen Lupe mal nachgerechnet: es sind tatsächlich 4 * 4 * 64 *64 Kerne in dieser Klappkarte (4k x 16).



Honeywell 316 computer: 16 x 4k Kernspeicher.            


Die Central Processing Unit besteht aus insgesamt 12, etwas größeren Steckkarten (im Vorgängermodel DDP-516 (ca. 1966) wurde die CPU auch noch mit  µ-PAC Karten aufgebaut). Auch hier habe ich auf Kurzschluss geprüft und auf naheliegene Plausibilität (ohmscher Widerstand, Durchgang der Verzögerungs-Leitungen u.ä). Offenbar soweit OK.
Dann ein Minimal-Aufbau im Mainframe mit CPU und einem Speicher-Modul gesteckt und nach Verbinden von Netzteil und Mainframe - erster Einschaltversuch 05.02.2025:



Honeywell 316 computer. Start mit Minimal-Bestückung: CPU und eine Kernspeicher-Einheit.            


Das sieht ganz gut aus. Der primärseitige Stromverbrauch liegt bei etwa 2,3 A; alle Betriebsspannungen liegen an und sind stabil.
Das Bedienfeld reagiert auf Eingaben und erfreulicherweise lassen sich die Register A, B, M und P erwartungsgemäß setzen und löschen, die Bitanzeigen leuchten.
Das Auslesen einer Speicherstelle scheint aber nicht zu funktionieren (FETCH Mode). Im Besonderen fällt auf, dass bei diesem Einzelschritt-Modus der Programmzähler nicht hochzählt sondern immer auf eine Lokation (Speicheradresse 270) springt.
Da stimmt was nicht und was kann das sein? Wird ein Interrupt eingereicht oder arbeitet das Distribution-Register nicht korrekt? Summiert der Addierer falsch oder stimmt was mit dem Timing nicht?
Da bei den Unterlagen auch der Verdrahtungs- und Signalplan der CPU zu finden war, und alle Stifte leicht zugänglich sind, prüfe ich mal die Taktgeber (clock) der CPU mit einem Logic Analyzer:  

             
Honeywell 316 computer. Master Clock der CPU (Dokumentation und aktuelle Aufnahme).

Aufgenommen mit einem HP 1630D logic analyzer - das sieht gut aus: Das RUN-FlipFlop startet die Masterclock, die aus den Folgen MCSET, MCRST und MCTLG besteht. Das CPU-Uhrwerk tickt wie es im Buche steht. Allerdings zeigt sich bei der weiteren Analyse, dass die nachgeordneten Timing Levels (TL1 bis TL4) nicht wie vorgesehn loslaufen, sondern abbrechen und es gar nicht zum Hochzählen den P-Registers um Eins kommt. Das ist seltsam, denn in der Minimlabestückung (CPU und Core) gibt es ja keine Einheit, die das unterbrechen könnte.
Erst bei weiterem Studium der Unterlagen offenbart sich, dass das ursprünglich in diesem Gerät verbaute Priority-Interrupt-Modul mit einer zusätzlich angebrachten Verdrahtung in die CPU eingreift. Liegt es daran?
Also bauen wir diese µ-PAC Steckkarten der PI-Einheit  und ein weiteres Modul Kernspeicher in das Mainframe ein und starten einen  zweiten Einschaltversuch 07.02.2025





Honeywell 316 computer. MasterClock mit CPU, 2 x Kernspeicher und Option Priority Interrupt.            

Nun sind auch die Timing Levels 1 bis 4 aktiv. Und, Hurra, auch der Programmzähler läuft beim Betätigen der Starttaste hoch und Speicherinhalte können von der Bedienkonsole ausgelesen und im A-Register angezeigt werden.
An den Speicherstellen 1 bis 17 ist standardmäßig ein "Key-In-Loader" hinterlegt - das Auslesen zeigt: der ist noch vorhanden. (Und das nach 40 Jahren Kellerschlaf - bemerkenswert, oder?)


Befund 15.02.2025

 * Der Rechner lässt sich starten; die Lüfter laufen, alle Betriebsspannungen sind vorhanden und stabil. Stromaufnahme primärseitig: ca. 2,9 A.
Ohne Auswahl eines Registers leuchten auf der Bedienkonsole alle Lämpchen der 16 Bit.
 * Die Register A, B, P und M lassen sich am Bedienfeld anwählen, setzen und löschen (CLEAR und MSTR CLEAR) und behalten auch bei Umschalten ihre Inhalte.
 * Speicherstellen lassen sich in allen vier Kernspeicherblöcken anwählen, wahlfrei setzen und auch korrekt wieder auslesen.
(Das war ein weiter Weg dahin: sechs Tantal-Kondensatoren und zwei Treiber-Transistoren in den Inhibit- und Sense-Versträkern getauscht)
 * Das OP-Register zeigt im Memory-Access Mode die Bits 3 und 5 als aktiv an, was zu stimmen scheint.
 * Eine über das Bedienfeld eingegebene Kette an JMP-Befehlen lässt sich sowohl im Single Instruction-, als auch im RUN-Mode fehlerfrei ausführen (SDMC ausgebaut).
 * Die Module Standard Data Multiplexd Controller (SDMC), Priority Interrupt (PI) und Parallel I/O Channel (IOC) sind mit einander "handverdrahtet" (customized):
 * Bei verbauter und bestückter SDMC-Unit geraten die Betriebsmodus aus den Fugen: Der Rechner schaltet beim zweiten Einzelschritt in den RUN-Mode und beginnt noch Unerklärliches.
Bei gezogenen Karten der SDMA-Einheit tastet sich der Rechner zwar sicher durch die Einzelschritte, aber ...
 * ... in den Regsitern A und B stehen unerwartete Werte, auch bei Befehlen, die diese Register gar nicht betreffen. 
Versuche, mit der H316 (arithmetisch) zu rechenn, enden in einem völligen Desaster.


Was würfelt die Register-Inhalte derart durcheinander? Weiterforschen.

21.02.2025
Nach einigen Sitzungen und einigem Variieren des Aufbaus und der Befehlsausführung fällt auf, dass das P-Register im RUN-Mode doch einen Hinweis gibt: Das Bit 12 leuchtet heller als die anderen; offenbar wird die Adresse 20 oder 2x häufiger angesprungen.
Lange Abende in den Tiefen der "wire lists" um zu verstehen:

  -  Mit dem hier verbauten Priority Interrupt Modul wird die Standard-Interrupt-Leitung der H316 um 4 Ebenen (lines) erweitetert
  -  Das Modul Standard Data Multiplexd Control ermöglicht 4 Kanäle zur direkten Ein-/ Ausgabe; 3 dieser 4 Kanäle (2 bis 4) wurden ab Werk geschlossen ("disabled" laut Dokumenten).
  -  Der erste (und am höchsten priorisierte) DMC-Kanal ist hand-wired auf das verbaute Parallel-Input-Modul durchgeschleift (DMC-Subchannel).
  -  Theoretisch signalisiert  ein extern angeschlossenes Gerät auf einer Data Interrupt Line (hier: DIL01+) einen DMC-Request  
  -  Nach Eingang des Requests auf DMC-Subchannel 1 sucht der Rechner an der Adresse 20 nach der Adresse, ab der er die bereitgestellten Daten ablegen kann.

Nun verwundert, dass es offenbar Sprünge auf die Adresse 20 gibt, obwohl gar kein Gerät angeschlossen ist und einen Interrupt anmelden kann.

Mit Hilfe der "CPU wire list" ein weiterer, vertiefter Analysegang:



           
Honeywell 316 computer. Befehlsausführung mit Timing Levels und Steuerleitungen

Bildschirmbild oben zeigt den Signalverlauf bei Start eines kurzen Programms: Es wird genau ein Befehl ausgeführt, dann endet das Timing der CPU (alle Timing Levels auf Null). Warum? Weil die SDMC-Einheit einen Interrupt bei der CPU anmeldet: Das Signal DMCYQ (für DMC Cycle-Request) geht auf Null (das Signal ist low active). Es verhält sich wie in den Dokumenten beschrieben. Aber woher kommt der Impuls, da doch gar kein angschlossenes Gerät einen Interrupt anmeldet?

23.02.2025
Offenbar reicht es nicht, dass ein Gerät nicht eingeschaltet ist, sondern muss explizit ausgeschaltet/abgemeldet werden?!
Also löte ich im SDMC-Stecker alle 4 SDMC Eingansgkanäle - DIL01+ bis DIL04+ - auf Null, wie bei einem Kurzschlussstecker und schaue mir das Programm auf dem Logic Analyzer nochmal an:



           
Honeywell 316 computer. Programmausführung mit Master-Clock, Timing Levels und Steuerleitungen


Sehr gut. Das fünfzeilige Programm (CLA, LDA, AOA, STA, HLT) läuft im RUN-Mode nun durch, terminiert nach sieben Zyklen planmäßig und die SDMC-Unit meldet keine Unterbrechung mehr an (DMCYQ bleibt auf passiv, 5 Volt) .
Nach mehreren Durchläufen und Prüfen des A-Registers und der Zieladresse behaupten wir mal vorsichtig: HONEYWELL 316 serial 00493 rechnet wieder !

Zur Überprüfung gibt es ein, über das Bedienfeld eingegebens kleines "echtes" Programm: ein im Kreis umlaufendes Bit im B-Register. Wesentliche Gestalter sind dabei die Befehle
  Add One to A (AOA)
  Logical Left Shift (ALR)
  Interchange A and B (IAB)  
  Increment, Replace and Skip (IRS)

Das Ergebnis von "Kreisläufer" lässt sich hier bestaunen  - eine mp4-Datei.
(Hatte hier übrigens einige Zeit gebraucht, um zu klar zu kommen, dass die Anzahl der Shifte nicht, wie gewohnt, als Binärzahl im Befehl hinterlegt wird, sondern als deren 2er-Komplement:
Ein Shift um eine Stelle wird mit 111 111 skaliert - War ein schönes Beispiel für "Wer Lesen kann ist klar im Vorteil".)


27.02.2025
Nach der guten Inbetriebnahme des Rechners (der Hardware) folgt nun ein Blick auf die Software:



           
Honeywell 316 computer. Original Paper Tapes

Das obige Bild zeigt Software auf Lochstreifen-Rollen (paper tapes) für die H316, wie sie der Hersteller HONEYWELL seinen Kunden mitgegeben hat. Aus den Unterlagen geht nicht ganz schlüssig hervor, ob die Software-Abteilung sehr nah bei der Hardware-Entwicklung und dort integriert war oder - was spätere Listings zeigen - als ganz eigene Divison organisiert gewesen ist.
Der Umfang und die Tiefe der Software-Produkte ist jedenfals beachtlich und gab dem Kunden vergleichsweise weitreichende Möglichkeiten bei der Anpassung des Rechners an seine Aufgaben.

Im Mittelpunkt stehen um 1970 ein gut ausgereifter Assembler und FORTRAN als etwas "höhere" Programmiersprache. Die Routinen, Unterprogramme und Bibliotheken sind umfassend und wirken doch übersichtlich und gut sortiert; Utilities und Diagnostic Programme komplettieren den Eindruck des Wohlsortierten. Hatte vermutlich auch alles seinen Preis; trotzdem wirkt das Ganze doch sehr quelloffen und nicht so schrecklich durch Lizenzen und Limits verstellt.

Die Lochstreifen werden mit einem Lochstreifenleser (paper tape reader) in den Rechner eingelesen, der dafür eine entsprechende Schnittstelle benötigt.
Ein erster Blick in den mit-eingefangenen Lochstreifenleser DIGITRONICS Model 2500 sieht allerdings so aus:




Honeywell 316 computer. Lochstreifenleser DIGITRONICS Model 2500, Fundzustand


Man erkennt auf dem Bild: oben die Glühbirne, die die Einlese-Bühne erhellt, die insgesamt neun Positionen über die der Lochstreifen geführt wird und rechts der Stopp-Mechanismus für den Lochstreifen. Der Gummi der Antriebswalze hat die Zeit leider nicht überlebt. Nach Entfernen der Überreste und Reinigen des Blocks, braucht es etwas Recherche eine geeignete neue Hülse zu finden. Fündig werde ich mit einem Silikonschlauch 15 mm Innen-, 17 mm Außendurchmesser. Der sich zum Fortbewegen des Streifens von unten zugeschaltete Andrückmechanismus muss dabei durch Lösen zweier Schrauben neu ausgerichtet werden.
Mit einem Offline-Abstand der beiden Rollen von ca. 0,5 mm (sie müssen vertikal und horizontal exakt ausgerichtet sein) gelingt es den Lochstreifenleser wieder funktionsfähig zu bekommen.



Honeywell 316 computer. Lochstreifenleser DIGITRONICS Model 2500, in Betrieb (ein Video zeigt den Betrieb)

Nach der manuellen Eingabe des Key-In Loader Programms an den Speicherstelle 1 bis 17 lässt sich der Lochstreifen AB16-CCT4 für die Prüfung der Central Processing Unit (diagnostic) ohne Unterbrechung einlesen. Und ein Vergleich der Kernspeicherinhalte mit dem vorliegenden Listing zeigt: offenbar funktioniert das fehlerfrei. Läuft. Das ist eine nette Überraschung.  

Mit einem großartigen, swiss-made GHILMETTI FER 204 eingelesene Paper-Tapes. Für Forschung und Studium. Jeweils als raw und binär-Format.

 AB16-CCT4 (H316, DDP-516/716 Central Processor Test) CCT4.raw  CCT4.bin
 AB16-RPT3 (Paper Tape Reader and Paper Tape Puch Test Program) RPT3.raw  RPT3.bin

  Das Studium des viele hundert Zeilen umfassenden Programms AB16-CCT4 dauert: Es werden alle Befehle der CPU einmal durchgeprüft, mit allen Optionen und Kombinationen.
Dazwischen erfolgen offenbar auch noch Ausgaben auf den (nicht angeschlossenen und nicht vorhandenen) Teletype ASR 33 - wie das sichtbar gemacht werden kann, dazu braucht es noch eine Idee.






 
  
  
Kategorien
Computersysteme
<--                             -->