|
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
<--
--> |
|