Wir in unserem
Museum für Computergeschichte haben kürzlich einen Satz
Lochkarten für ein 50 Jahre altes Computermusikprogramm gekauft. Die meisten Computer hatten damals keine Soundkarten, aber kreative Programmierer fanden Möglichkeiten, Musik mit linearen Druckern zu liefern. Wir waren ein wenig besorgt, dass dieses Programm den Drucker verletzen könnte, riskierten aber dennoch, es auf dem alten IBM 1401-
Mainframe auszuführen . Wie zu erwarten, klingt die vom Lineardrucker abgespielte Musik schrecklich - aber die Melodie kann analysiert werden und der Drucker wurde nicht verletzt.
Der Business-Computer IBM 1401 wurde 1959 eingeführt und Mitte der 1960er Jahre zum meistverkauften Computer - mehr als 10.000 solcher Systeme wurden ausgeliefert. Der entscheidende Wettbewerbsvorteil des IBM 1401 war der Hochgeschwindigkeits-Zeilendrucker IBM 1403. Durch die sich schnell drehende Zeichenkette konnte der Drucker 10 Zeilen pro Sekunde mit ausgezeichneter Qualität drucken - es wurde angenommen, dass dies die beste Qualität war, bevor Laserdrucker in den 1970er Jahren auf den Markt kamen.
Die gedruckte Schaltung des Druckers ist 1401. Sie hat 48 verschiedene Zeichen, die fünfmal wiederholt werden.Zeilendrucker waren sehr laut, aber Programmierer stellten bald fest, dass beim Drucken bestimmter Zeichenzeilen aus Rauschen bestimmte Frequenzen extrahiert werden konnten. Es war möglich, eine Note durch Drucken der erforderlichen Zeilen zu spielen. In der Region von 1970 codierte der Informatikspezialist
Ron Mack mehrere Songs auf Lochkarten mit dem vorhandenen Musikprogramm. Er ist kürzlich auf seine alten Programme gestoßen und hat uns die Möglichkeit gegeben, sie auszuprobieren.
So funktioniert ein Lineardrucker
Zum Drucken von Zeichen verwendet der Drucker eine Kette von Gliedern mit Zeichen, die sich mit hoher Geschwindigkeit gegenüber dem Papier drehen, und zwischen dem Papier und der Kette befindet sich ein Farbband. Der Drucker erzeugt Zeilen mit 132 Spalten - das heißt, jede Spalte hat ihren eigenen Hammer und Elektromagneten. Im richtigen Moment, wenn sich das gewünschte Symbol am Hammer vorbei bewegt, drückt der Elektromagnet den Hammer gegen das Papier, und das Papier trifft zusammen mit dem Klebeband auf die Verbindung und druckt das Symbol.
IBM 1401 Lineardrucker-Druckmodul (aus Anweisungen)Damit dieser Vorgang funktioniert, muss der Drucker die Betriebszeit sorgfältig berechnen. Die Kette dreht sich mit einer Geschwindigkeit von 2,3 m / s und alle 11,1 μs befindet sich das nächste Glied gegenüber dem Hammer. Der Steuerkreis hat kaum genug Zeit, um die Position dieses Symbols aus dem Hauptspeicher zu lesen, es mit dem Symbol unter dem Hammer zu vergleichen und im Falle eines Zufalls auf den Hammer zu schlagen. In 132 Zeitintervallen kann jeder Malleus ein Zeichen drucken. Dies wird als "Scan" bezeichnet. Da der Satz 48 Zeichen enthält (ohne Großbuchstaben), müssen Sie diesen Vorgang 48 Mal wiederholen, um alle Zeichen in einer Spalte zu drucken. Bei jedem Scan wird die Kette nur um eine Zeichenbreite verschoben.
Das Hammerset des IBM 1403-Druckers. Nachfolgend sind die Aufprallpunkte von 132 Hämmern aufgeführt (einer pro Säule). Oben befinden sich die Spulen und Drähte von 33 von 132 Hämmern.Am unteren Rand des Fotos ist ein Hammer abgebildet. Oben links befindet sich eine elektromagnetische Spule und Drähte. Wir mussten diesen Hammer ersetzen, nachdem die Spule überhitzt und geraucht war - das Foto zeigt den geschwärzten Bereich (dies
geschah vor langer Zeit und hat nichts mit Musik zu tun).

Musikgenerierung
Nachdem Sie verstanden haben, wie der Drucker funktioniert, dessen Hammer alle 11,1 μs arbeiten kann, ist es einfacher, die Strategie zum Erhalten von Musik zu verstehen. Durch Drucken sorgfältig ausgewählten Textes können Sie die Reaktionszeit der Hämmer steuern. Wenn die Hämmer in bestimmten Intervallen ausgelöst werden, können die erforderlichen Frequenzen erzeugt werden. Zum Beispiel kann eine Note la (440 Hz) erhalten werden, indem eine Textzeile gedruckt wird, so dass die Schlägel alle 1/440 Sekunden arbeiten. Dies kann erreicht werden, indem Sie 1 in die 1. Spalte (erster Hammer), dann # in die 14. Spalte beim nächsten Scan, ein Komma in die 30. Spalte usw. eingeben. Das Folgende ist die gesamte Zeile, die Sie drucken müssen, um eine Notiz zu erstellen. Sie werden überrascht sein, dass der Zeichensatz mit nur 48 Positionen so seltsame Vorkommen wie ⌑ und ‡ enthält.
1 ⌑YC# 0 Q 3, ‡FRT 4 - , IU $7 MV . * 9N ⌑ ZE @ P3
Das folgende Diagramm zeigt die zeitliche Verteilung der Hämmer, eine gleichmäßige Frequenz von 440 Hz, gegeben durch die gegebene Zeichenzeile. Die x-Achse repräsentiert die Zeit, jedes gedruckte Zeichen ist mit roten Balken markiert. Die roten Streifen sind in einem Abstand von 1/440 Sekunden gleichmäßig verteilt, was eine Note bei 440 Hz ergibt. Jeder Balken ist mit einem zugehörigen Symbol und einer Spalte auf der Seite gekennzeichnet. Beachten Sie, dass Zeichen nicht in der Reihenfolge gedruckt werden, in der sie in der Zeile erscheinen. Es gibt keine einfache Beziehung zwischen der Anordnung von Zeichen in einer Zeichenfolge und ihrer zeitlichen Abfolge. Es werden einige graue Linien angezeigt, in denen der Hammer hätte arbeiten sollen, aber das Symbol fehlt. Zu diesem Zeitpunkt wird das Netzwerk synchronisiert, sodass es nicht drucken kann.
Zeitverteilungsdiagramm für Anmerkung la.Durch Eingabe einer anderen Zeile können Sie eine weitere Notiz generieren. Unten ist eine Si-Note von 987 Hz (mehr als eine Oktave höher). Wie erwartet erfordern mehr Notizen mehr Zeichen:
1 @EQ4S J 8. ND ‡ SH 7 AM Y#2 G- KV . 0 DQSJ 7& ND ‡/4 H AMX0 2 QGJ W. 0 DP‡ S 7&AM ‡/4G * MX0 D 3
Zeitverteilungsdiagramm für Anmerkung s.Das Folgende ist eine Linie für eine scharfe Note (138 Hz). Anfangs war mir nicht klar, warum für diese Notiz eine Zeichenfolge gedruckt werden muss, in der alle Zeichen auf einem Haufen gesammelt und nicht wie bei anderen Notizen verstreut sind. Es stellt sich heraus, dass 138 Hz mit den Hämmern in einer Reihe zusammenfallen. Und obwohl die Charaktere nebeneinander liegen, sind sie über die Zeit gleichmäßig verteilt.
16#UZKP*E&38
Zeitverteilungsdiagramm für eine scharfe Note.Was ist das Risiko von Kettenmusik?
Wir befürchteten, dass dieses Musikprogramm unseren Drucker beschädigen könnte. Es gibt viele Geschichten darüber, wie Menschen Drucker kaputt machten, indem sie eine Linie druckten, in der alle Schlägel gleichzeitig funktionieren. Ich denke, dass dies hauptsächlich urbane Legenden sind (1403 Schlägel feuern wiederum). Wir befürchteten jedoch, dass Kettenmusik die Druckerkette überlasten und sie brechen könnte. Das Foto unten zeigt eine Kette, die während des normalen Gebrauchs gebrochen ist. gerissene Drähte und einzelne Verbindungen sind sichtbar.

Eine Kette für den Drucker wurde hergestellt, indem ein dünner Draht in ein Band geflochten und Blöcke mit Buchstaben daran befestigt wurden. Bis vor kurzem waren diese Ketten selten und konnten nicht ersetzt werden. Wenn der Draht gerissen war, war es unmöglich, ihn zu reparieren. Das Techworks Museum! aus Binghamton haben kürzlich einen Weg gefunden, gedruckte Schaltungen wiederherzustellen. Daher stimmte unser König bei IBM 1401, Frank King, widerstrebend der Verwendung der restaurierten Kette zum Abspielen von Musik zu. Glücklicherweise hat die Kette die Musikgeneration perfekt überlebt. Nachdem ich das Musikprogramm studiert hatte, kam ich zu dem Schluss, dass es die Schaltung viel weniger belastet als gewöhnliches Drucken, es sei denn, es entsteht natürlich eine besonders unglückliche Resonanz.
Gedruckte Schaltung (verkehrt herum) aus nächster NäheDas Programm

Der Quellcode für das Programm ist längst in Vergessenheit geraten, daher habe ich die
Maschinencodes von den Karten zerlegt, um zu verstehen, wie es funktioniert (ich
liste die Liste separat auf). Zunächst werden die „Frequenzkarten“ gelesen, die bestimmen, welche Zeile für welche Note gedruckt werden soll. Es erstellt im Speicher eine Reihe von Zeilen zum Drucken sowie eine Tabelle mit den Namen der Notizen und den Adressen der Zeilen zum Drucken. Dann liest das Programm die Noten der Songs, eine Note pro Karte (das Foto zeigt, dass für einige Songs viele Karten verwendet werden müssen). Für jede Notiz sucht das Programm nach der entsprechenden Zeile, die in der Tabelle gedruckt werden soll. Abhängig von der Länge der Notiz wird eine Zeile so oft wie nötig gedruckt. Erfüllt ferner einen Ruhezyklus von 200 bis 2000 Mal.
Lochkarten mit dem Maschinencode des Musikprogramms. Aus irgendeinem Grund wird der Inhalt jeder Karte zweimal darauf gedruckt.Der Maschinencode 1401 unterscheidet sich stark von modernen Computern. Einer der Unterschiede besteht darin, dass zuvor häufig
selbstmodifizierender Code häufig verwendet wurde, aber heute werden solche Praktiken verurteilt. Beispielsweise wird eine Tabelle mit zu druckenden Zeilen erstellt, indem die Ladeanweisungen geändert werden, wobei sich das Adressfeld ändert. Sogar Rückgaben von Routinen verwenden selbstmodifizierenden Code, indem die Rücksprungadresse in die jmp-Anweisung am Ende der Routine eingefügt wird. Um eine Notiz zu verarbeiten, generiert das Programm im laufenden Betrieb eine Folge von drei Anweisungen, um eine Zeile zu laden, zum Druckcode zu wechseln und dann zur Hauptschleife zurückzukehren. Selbstmodifizierender Code machte es mir schwer, das Programm zu verstehen, da der zerlegte Code nicht mit dem tatsächlich ausgeführten übereinstimmt.
Hinter den Karten mit dem Programm befinden sich Frequenzkarten, die die Linien für jede Note definieren. Der Code unterstützt bis zu 20 verschiedene Noten, sodass die Frequenzkarten für jeden Song separat ausgewählt wurden. Jede Zeile mit 132 Zeichen ist in zwei Karten unterteilt, von denen die erste die rechte Seite der Zeile bestimmt. Der Name der Note und die Frequenz sind auf jeder Karte in der rechten Ecke aufgedruckt.
FrequenzkartenDer letzte Kartensatz erzeugt eine Melodie, und jede Note (oder Lücke) hat eine eigene Karte. Auf jeder Karte sind eine Notiz und eine Dauer aufgedruckt. Eine lange Melodie kann Hunderte von Karten beinhalten. Es ist einfach, eine neue Melodie auf den Karten zu speichern - Sie müssen nur die Notizen auf den Karten brechen. Noten werden im
amerikanischen Notationssystem angegeben , wobei auf den Namen der Note eine Oktavzahl folgt. Zum Beispiel ist C4 der Durchschnitt von. Da nur einige gedruckte Schaltungen das Symbol # haben, werden scharfe Stellen mit dem Buchstaben S bezeichnet, dh CS anstelle von C #.
Foto einer Karte mit der Melodie "Silver Bells" Nahaufnahme.Fazit
Wir haben erfolgreich Musik auf einem IBM 1403-Drucker abgespielt, indem wir Programme ausgeführt haben, die seit fast 50 Jahren niemand mehr ausgeführt hat. Obwohl die Qualität der Musik nicht besonders hoch war, waren wir froh, dass sich der Drucker nicht selbst zerstörte. Das letzte Mal, dass Ron Mack diese Programme 1970 startete;
Über den Link finden Sie einige Melodien. Das Video unten zeigt einen Auszug aus der Marseillaise; In diesem Video können Sie den Druck jeder Zeile sehen.
Das Mountain View Museum für Computergeschichte zeigt
mittwochs und samstags IBM 1401. Wenn Sie also in der Nähe sind, empfehle ich Ihnen, unsere Ausstellung zu besuchen.