DE2641971A1 - Digitale tisch-buchungs- und -rechenmaschine - Google Patents

Digitale tisch-buchungs- und -rechenmaschine

Info

Publication number
DE2641971A1
DE2641971A1 DE19762641971 DE2641971A DE2641971A1 DE 2641971 A1 DE2641971 A1 DE 2641971A1 DE 19762641971 DE19762641971 DE 19762641971 DE 2641971 A DE2641971 A DE 2641971A DE 2641971 A1 DE2641971 A1 DE 2641971A1
Authority
DE
Germany
Prior art keywords
program
memory
register
machine
printing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19762641971
Other languages
English (en)
Inventor
Giorgio Dr Ing Fiorenza
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olivetti SpA
Original Assignee
Olivetti SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olivetti SpA filed Critical Olivetti SpA
Publication of DE2641971A1 publication Critical patent/DE2641971A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • G06F15/025Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators adapted to a specific application

Description

PATENTANWÄLTE
ey H
D-1 BERLIN-DAHLEM 33 · PODBIELSKIALLEE 68 D-8 MÜNCHEN 22 · WIDENMAYERSTRASSE 49
BERLIN: DIPL.-1NG. R. MÜLLER-BÖRNER
Ing. C. Olivetti & C.,S.P.A.münchen: dipl-ing. hans-heinrich wey
DIPL.-ING. EKKEHARD KÖRNER
Berlin, den 15. September 1976
Digitale Tisch-Buchungs- und -Recher^rasohine
(Italien, Nr. 69284-A/75 vom 15. September 1975)
76 Seiten Beschreibung
4 Patentansprüche
15 Blatt Zeichnungen
25 995
709812/1017
BERLIN: TELEFON (O 3O) 8 31 2O88 MÜNCHEN: TELEFO N (O 89) 22 05 8B KABEL: PROPINDUS · TELEX O184O57 KABEL: PROPlNDUS · TELEX O5 24 244-
Die vorliegende Erfindung bezieht sich auf eine digitale Buchungsmaschine mit einem aufgezeichneten Programm, die auch als Rechenmaschine arbeiten kann. Insbesondere betrifft die Erfindung eine digitale Tisch-Buchungs- und -Rechenmaschine, die auf programmierte oder manuelle Art und Weise arbeiten kann, mit einer Tastatur zum Eingeben von (numerischen) Daten und Betriebsbefehlen, einer Druckeinheit, einer ein vorbestimmtes (Buchungs-) Programm enthaltenden Programmiereinheit, einer elektronischen Verarbeitungseinheit zum Ausführen arithmetischer Operationen in manueller Weise und zum Ausführen dieses Programms sowie zum Steuern des manuellen Betriebs in der programmierten Weise in Erwiderung der Befehle, und einem Daten und Verarbeitungsergebnisse (des Programms) enthaltenden Betriebsspeicher.
Die bekannten Buchungsmaschinen lassen entweder nur einen programmierten Betrieb zum Ausführen geplanter Buchungsvorgänge zu oder dann, wenn sie zusätzlich einen manuellen Betrieb als arithmetische Rechenmaschinen gestatten; dies wird als Ausweichmöglichkeit zum programmierten Betrieb in dem Sinne angesehen, daß die Maschine nur nach vollständiger Ausführung des Programms und Beendigung der entsprechenden Arbeit in den manuellen Betrieb zurückversetzt werden kann. Die Arbeiten, die eine Buchungsmaschine auf programmierte Art und Weise ausführt, sind üblicherweise wiederholender Art und von langer Dauer (aufeinanderfolgenden Arbeitsstunden), und während dieser Zeit ist ein manueller Betrieb als Rechenmaschine ausgeschlossen. Daher erweist sich die Verwendung einer Buchungsmaschine als einfache arithmetische Rechenmaschine als sehr begrenzt.
709812/1017
Zur Lösung dieser Aufgabe sieht die Erfindung eine digitale Tisch-Buchungs- und -Rechenmaschine vor, die auf programmierte oder manuelle Art und Weise arbeiten kann, mit einer Tastatur zum Eingeben von (numerischen) Daten und Betriebsbefehlen, einer Druckeinheit, einer ein vorbestimmtes (Buchungs-) Programm enthaltenden Programmiereinheit, einer elektronischen Verarbeitungseinheit zum Ausführen arithmetischer Operationen in manueller Weise und zum Ausführen dieses Programms sowie zum Steuern des manuellen Betriebs in der programmierten Weise in Erwiderung der Befehle, und einem Daten und Verarbeitungsergebnisse (des Programms) enthaltenden Betriebsspeicher.
Eine solche Buchungs- und Rechenmaschine hat erfindungsgemäß einen Auswählschalter für die programmierte oder manuelle Art und Weise, einen Konservierungsspeicher und eine durch das Programm gesteuerte Einrichtung zum Aktivieren des Schalters und zum Unterbrechen der Ausführung des Programms sowie zum Starten des Betriebs in der manuellen Weise zum methodischen Übertragen des Inhalts des Betriebsspeichers auf den Konservierungsspeicher, wobei eine Einrichtung zum Bewirken des Rückkehrens auf die programmierte Weise, indem der Inhalt des Konservierungsspeichers methodisch auf den Betriebsspeicher zurückübertragen wird, in Erwiderung auf die Betätigung des Schalters vorgesehen ist, wodurch die Wiederaufnahme der Ausführung des Programms von denselben Daten und Verarbeitungsergebnissen ausgehend stattfindet, die im Betriebsspeicher bei der Unterbrechung der Ausführung des Programms vorhanden sind.
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
709812/1017
Durch die Erfindung wird es möglich, den Betrieb in der programmierten Weise praktisch in jedem Augenblick zu unterbrechen und auf die manuelle Art und Weise zwecks rechtzeitiger Ausarbeitung von arithmetischen Berechnungen überzugehen. Die Maschine kann sofort auf die programmierte Art und Weise zurückgebracht werden, sobald die Berechnungen beendet1 sind, wobei keine der programmierten Arbeiten, die vor der Unterbrechung ausgeführt wurden, verlorengeht, und das Programm und die Arbeiten genau an der Stelle wiederaufgenommen werden, an der sie unterbrochen worden sind.
Somit ist es möglich, mit einer einzigen Maschine den Erfordernissen der Kontinuität von Buchungsarbeiten auf wirtschaftliche Weise Genüge zu tun, während arithmetische Berechnungen unregelmäßig, d. h. wie und wann immer sie erwünscht sind, ausgeführt werden können.
Weitere Einzelheiten, Merkmale, Anwendungen und Vorteile der Erfindung sind nachstehend anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert. Es zeigen:
Fig. 1 eine schematische perspektivische Ansicht einer die Erfindung verkörpernden Maschine;
Fig. 2 ein allgemeines Diagramm der elektronischen und mechanischen Bauteile und ihrer Verbindungen in der Maschine in Fig. 1;
Fig. 3 ein Diagramm der Tastatur und des Bedienungspultes der Maschine in Fig. 1;
709812/1017
Fig. h ein Diagramm einer Anzahl von Verbindungen zwischen elektronischen Einheiten der Maschine in Fig. 1;
Fig. 5 ein Blockdiagramm einer zentralen Verarbeitungseinheit (CPU)'in Fig. k>,
Fig. 6 ein Diagramm des Aufbaus eines Lese-Schreib-Speichers (RAM) in Fig. k;
Fig. 7 ein Diagramm eines reservierten Speicherbereichs (ZRM) des RAM in Fig. 6;
Fig. 8 eine Programmtrommel der Maschine in Fig. 1;
Fig. 9 und 10 Beispiele für ein Laden der Programme in den RAM in Fig. 6;
Fig. 11a die Verwendung des RAM in Verbindung mit dem Interpretierer der Maschine;
Fig. 11b das Interpretier-Mikroprogramm in Form eines Diagramms;
Fig. 12a, 12b,13a und 13b Flußdiagramme, die die Initialisierung der Maschine in manueller und automatischer Weise veranschaulichen;
Fig. Ik und 15 Flußdiagramme, die die Vorgänge des Ladens der Programmtrommel veranschaulichen; und
Fig. i6 ein Flußdiagramm, das ein Beispiel des Überschneidens der Tastatureingabe mit dem Drucken veranschaulicht.
70981271017
- 3
Gemäß Fig. 2 setzt sich, die erfindungsgemäße auf eine Rolle druckende digitale Tisch-Buchungs- und -Rechenmaschine mit Programmaufzeichnung aus den folgenden Hauptbauteilen zusammen:
einer elektronischen Verarbeitungseinheit 26; einem Bedienungspult 27 zum Vorbereiten der Maschinenoperation und zum optischen Anzeigen der von der Bedienungsperson benötigten Information; einer Tastatur 2 zum Einführen von numerischen Daten und Eingeben von arithmetischen Funktionen; einer Druckeinheit 28 zum Drucken der Verarbeitungsergebnisse auf Papier mit einem beweglichen Druckkopf 29 und einer feststehenden Schreibwalze, die in zwei Abschnitte 30 und 31 unterteilt ist, von denen der eine Abschnitt 30 auf der linken Seite von der Bedienungsperson dann verwendet wird, wenn die Maschine als Rechenmaschine arbeitet, während der andere Abschnitt auf der rechten Seite von der Bedienungsperson dann verwendet wird, wenn die Maschine als Buchungsmaschine arbeitet.
Die Maschine weist weiterhin eine Programmleseeinheit 32, die an die elektronische Verarbeitungseinheit 26 mittels acht Leitungen 186 zum Lesen der Instruktionen zuzüglich einer Synchronisierleitung 187 angeschlossen ist und einen Programmträger 33 lesen und das Programm in einen Speicher 152, 155 (Fig. 4) der Verarbeitungseinheit 26 einführen kann, und eine Gruppe von Zusatzeinheiten mit einer Steuereinheit 3^» einem Magnetband-Datenaufzeichnungsgerät 35 und einem Streifenlocher 36 auf.
Elektronische Verarbeitungseinheit
Die elektronische Einheit 26 der Buchungs- und Rechenmaschine ist im bevorzugten Ausführungsbeispiel als mikroprogrammierter Mikroprozessor derjenigen Art ausgebildet, die zur Zeit in der einschlägigen Technik bekannt und auf dem Markt ist.
709812/1017
Ein derartiger Mikroprozessor beinhaltet einen Aufbau aus integrierten Standardschaltungen, die zur gleichen Familie gehören und jeweils auf einem einzigen "Chip" in Übereinstimmung mit der MOS/LSI-Technik integriert werden. Insbesondere sind die monolithischen Schaltungen des hier behandelten Mikroprozessors gemäß Fig. k die folgenden: eine zentrale Einheit oder "CPU" 75» eine Reihe von Nur-Lese-Speichern oder ROMs 76, 77 und 78» eine Reihe von Lese/Schreib-Speichern mit wahlfreiem Zugriff oder RAMs 79, 152 und I55, ein Satz von Eingabe-/Ausgäbe- oder i/O-Schnittstelleneinheiten 81 und 82, die die CPU 75 über eine Anpassungs- und Betätigungseinheit 99 mit der Tastatur 2 und den elektromechanischen Steuereinheiten 91 der Maschine verbinden, und eine Taktgeberschaltung 83.
Aufgrund der Verwendung von elektronischen Bauteilen mit einer Integration in großem Maßstab (LSI) ist die Maschine vollständig in einem Körper sehr geringer Gesamtabmessungen untergebracht, die voll und ganz mit denen einer herkömmlichen Tischrechenmaschxne vergleichbar sind; aus diesem Grund wird die übliche vorherige Installierung auf der Oberfläche eines Tisches vorgenommen.
Eine Verbindung zwischen diesen monolithischen Schaltungen wird durch die bekannte Technik der Verteilerleitungen oder "Busschienen" erhalten, für die die Schaltungen selbst schon vorbereitet sind.
Die Informationsdatenwörter, die zwischen den vorstehend erwähnten Grundschaltungen ausgetauscht werden sollen, bestehen im wesentlichen aus drei Arten: Adressen, Instruktionen und Daten; zur Verteilung jeder dieser Arten von Information ist
7098 12/1017
eine geeignete Verteilerleitung (Bus) vorgesehen, die sich aus einer bestimmten Anzahl von Drähten zusammensetzt, die der Anzahl der parallel zu handhabenden Bits entspricht, nämlich jeweils zwölf Drähte für den Adressenbus 92, acht Drähte für den Instruktionsbus 93 und vier Drähte für den Datenbus 9h in Übereinstimmung mit der Tatsache, daß eine Adresse ein Code von 12 parallel angeordneten Bits, eine Instruktion ein Acht-Bit-Byte und eine Dateneinheit ein Wort (entweder ein Wort oder eine Ziffer) von vier Bits ist. Außerdem ist eine aus einem Draht bestehende Leitung 95 für das Übertragen des Schreiben-in-Speicher-Befehls aus der CPU auf die RAMs und eine weitere ebenfalls aus einem Draht bestehende Leitung 96 zum Verteilen des entsprechenden Freigabesignals von der CPU zu den i/O-Einheiten vorhanden. Schließlich sorgt eine aus zwei Drähten bestehende Leitung 97 für die Verteilung von zweiphasigen Taktgeberimpulsen.
Das die Steuerung der Maschine bewirkende Mikroprogramm setzt sich aus einer Folge von Mikroinstruktionen zusammen, die jeweils van einem Byte aus acht parallel angeordneten Bits gebildet werden und unauslöschlich in die ROMs 76 bis 78 eingeschrieben sind; jede ROM-Speicher-"Zelle" enthält in der Tat ein Byte aus acht Bits; wenn der ROM abgefragt wird, erscheint das in der adressierten Zelle enthaltene Byte auf dem Instruktionsbus 93; jeder Zelle der ROMs J6 bis 78 des Systems entspricht ein bestimmter 12-Bit-Code oder eine 12-Bit-Adresse, und um eine vorgegebene Zelle der ROMs zu adressieren,genügt es, das Erscheinen der entsprechenden Adresse derselben zu einem passenden Zeitpunkt auf dem Adressenbus 92 zu bewirken. Da der Adressenbus 92 von den ROMs und den RAMs gemeinsam benutzt wird, wird die Zuteilung des Adressencodes mittels des Taktens bewirkt, das zwei getrennte Taktintervalle für die ROMs und die RAMs liefert, während deren der allgemeine Adressencode im ROM bzw. RAM aktiviert wird.
709812/1017
Ein einzelner Chip der ROMs 76 bis 78 enthält 1024 = 210 Bytes, und daher werden 10 Adressenbits ausreichen, um sämt-
2 liehe Zellen eines ROM zu adressieren; 2 = k ROM-Chips können deshalb mittels der anderen zwei Adressenbits unmittelbar adressiert werden; mit anderen Worten: Eine von hOS6 ROM-Zellen kann mit den 12, Bits der Adresse adressiert werden. Innerhalb der Grenzen eines ROM-Chips (der 2 Bytes enthält) sind 2 =16 "ROM-Seiten" definiert, von denen jede 2 - Sh Bytes enthält; insbesondere wird das einzelne Byte innerhalb der generischen ROM-Seite mittels der sechs am wenigsten bedeutendsten Bits der vorstehend erwähnten 10 Adressenbits adressiert, während die einzelne ROM-Seite innerhalb des generischen ROM-Chips mittels der anderen vier Bits adressiert wird; mit anderen Worten: Es werden alle diejenigen Bytes als zur gleichen ROM-Seite gehörend definiert, deren Adressencodes identische Konfigurationen der betreffenden sechs bedeutendsten Bits aufzeigen, während alle diejenigen ROM-Seiten, die Bytes beinhalten, deren Adressencodes identische Konfigurationen der betreffenden zwei bedeutendsten Bits aufzeigen, zum gleichen ROM-Chip gehören.
Andererseits enthält ein einzelner Chip oder eine einzelne "Seite" der RAMs 79, 152, 155 2 = 256 Zellen, von denen jede eine Kapazität von einem Wort (oder 4-Bit-Wörtern) aufweist, und deshalb können 2 = 16 RAM-Chips mittels der 12-Bit-Adresse adressiert werden, weil die Zwölf-Bit-Adresse wiederum eine von kO96 Zellen auswählen kann. Jede RAM-Seite setzt sich außerdem aus 16 Registern (numeriert von 0 bis I5) oder "Zeilen" zusammen, von denen jedes bzw. jede in 16 Zellen genauso viele Wörter oder "Ziffernstellen", die ebenfalls von 0 bis 15 numeriert sind, enthält. Üblicherweise ist die Maschine in der Grundauslegung mit den beiden RAM-Chips 79 und 152 (Fig. 6) versehen, die jeweils die RAM-
- 10 -
709812/1017
Seite "O" und die RAM-Seite "1" darstellen, welche auf folgende Weise eingerichtet oder aufgebaut sind.
Die Seite "0", 79» umfaßt einen reservierten Speicherbereich (ZRM) 143; dies ist ein Teil des RAM, der ausschließlich dem Mikroprogramm vorbehalten und dem Programmierer nicht zugänglich ist; einen Aufbau 154 von sieben Arbeitsregistern R_ bis R^ (132 bis I38) und einen Tastaturpuffer 139 mit einer Kapazität von zwei Registern.
Der reservierte Speicherbereich ZRM, 143» dessen Gesamtkapazität der von sieben Registern entspricht, besteht aus einem Betriebsregister S, 142, einem Stapel-Unterroutinenregister 14O, einem Druckpuffer 141 mit einer Kapazität von 26 Zeichen, die 26 Wörtern entsprechen, einem Datenregister 153 mit einer Kapazität von sechs Wörtern und schließlich einer zweckentsprechenden Anzahl von Speichern mit einer Kapazität, die im allgemeinen nicht größer als zwei Wörter ist, wobei die Speicher als Zähler, Schaltelemente, Flip-Flops etc. Verwendung finden und von denen einige dermaßen eingerichtet sind, daß sie Bedingungen oder Zahlen, die sich jeweils auf verschiedene Ereignisse oder Mengen beziehen und deren Funktion den Erfordernissen entsprechend definiert ist, zu aufeinanderfolgenden Zeitpunkten speichern können.
Die RAM-Seite 11I", 152, besteht aus einem Aufbau von Konservierungsregistern RA, Rßf R , R0 (i44, 1^5, 146, 147) und dem zum Speichern des Programms bestimmten Programmspeicher 80,
Üblicherweise sind vier Konservierungsregister (R. bis Rn) vorgesehen, und der Programmspeicher 152 besitzt eine Kapazität, die der von zwölf Registern entspricht, d. h. 12 χ : 2 = 96 Bytes; in diesem Fall besitzt die erste Zelle der RAM-Seite 1, die vom Programm belegt werden kann, die Adresse
-U-
709812/101?
4 χ 16 = 64, wobei die Zellen die die Konservierungsregister bildenden Adressen 0 bis 63 besitzen.
Der Registeraufbau von Seite "1" kann auf Kosten der Kapazität des Programmspeichers 80 durch ein Definieren weiterer vier Register R£, Rp, RG, RR (i48, 149, 150, I51) im allgemeinen zu dem Zweck erweitert werden, die Kapazität der Maschine zu erhöhen, um konstante Daten oder komplexe Verarbeitungszwischenergebnisse zu speichern; in diesem Fall beträgt die Adresse der ersten Zelle der RAM-Seite 1, die vom Programm belegt werden kann, 128, und die Kapazität des Programmspeichers 80 fällt von 96 auf 64 Bytes.
Bei einer erweiterten Auslegung der Maschine ist ein dritter RAM-Chip 155 (der die RAM-"Seite 2" darstellt) zusätzlich vorgesehen, der die Kapazität des Programmspeichers 80 um 128 Bytes erhöht, wodurch die Gesamtkapazität auf 224 Bytes (oder 192 Bytes) gebracht wird.
Was die Mikroinstruktionen anbelangt, so sollen, obwohl
mit acht Bits 2 = 256 verschiedene Bytes unterschieden werden können, nur einige zehn der Mikroinstruktionen erkannt werden, weil viele von diesen Mikroinstruktionen in Wirklichkeit Gruppen von Mikroinstruktionen sind, die zwar funktionell miteinander identisch, aber doch einfach wegen eines unterschiedlichen numerischen Wertes, der sich auf irgendeinen Operanden (beispielsweise auf die Adresse einer ROM-Zelle, auf der gearbeitet werden soll) bezieht, voneinander verschieden sind.
Insbesondere dienen die Schnittstellenschaltungen 81 bis (Fig. 4) zum Austauschen der Daten und der Steuerinformation mit Einrichtungen außerhalb der elektronischen Verarbeitungs-
- 12 -
709812/1017
einheit; jede ist mit dem Datenverteilerbus, mit der l/0-Freigabesignalleitung und mit der Taktgeberschaltung verbunden und außerdem mit zwölf hochohmigen Eingängen und zwölf diskreten statischen Ausgängen für die Eingabe bzw. die Ausgabe von Information aus den und auf die externen Einrichtungen (wie die Tastatur 2 (Fig. 2), der Drucker 28, der Programmleser 32 etc.) versehen.
Die Taktgeberschaltung 83 (Fig. k) erzeugt die Taktgebersignale mit zwei periodischen Rechteckwellen gleicher Frequenz und unterschiedlicher Phase; durch das logische Zusammenlegen dieser Signale werden 2 = h grundsätzliche Zeitintervalle T1, T2, T3, Tk definiert, die die logischen Operationen der verschiedenen Chips takten.
Die zentrale Einheit 75 (Fig· 5) ist ein paralleler 4-Bit-Daten-(Wort-) Prozessor, der mit Mikroinstruktionen von 1 Byte (8 Bits) mikroprοgraminiert ist und einen Mikroinstruktionsdecodierer 100, ein Akkumulatorregister 101 mit einer Parallelität von· Vier und einen Addierer 102 aufweist, der ebenfalls eine Parallelität von Vier besitzt und mit einem übertrags-Flip-Flop C 113 versehen ist. Zwei Schaltungen 103 und 1O^ zum direkten Eingeben in die CPU können in zwei Arbeitszyklen zwei jeweils aus vier Bits bestehende Wörter unmittelbar auf den Akkumulator übertragen, die ein 8-Bit-Byte darstellen, das auf einem zweckentsprechenden Kanal 186 zur direkten Eingabe in die CPU vorhanden ist. Ein Hilfsregister X 105 kann ein Wort speichern. Ein 12-Bit-Zählerregister 106 wird zum Bilden und Speichern der ROM-Adressen verwendet, das als Mikroprogrammzähler wirkt und mit einer Einrichtung zum stufenweisen Erhöhen der in ihm enthaltenen Binärzahl um +1 vervollständigt wird, wie dies für das sequentielle Lesen des Mikroprogramms notwendig ist.
- 13 -
709812/1017
Ein weiteres 12-Bit-Zählerregister 107» das mit einer Einrichtung zum stufenveisen Erhöhen der in ihm enthaltenen Binärzahl um +1 vervollständigt wird, wird zum Eilden und Speichern der RAM-Adressen verwendet und ist in drei 4-Bit-Abschnitte unterteilt, von denen der am wenigsten bedeutendste Abschnitt L 114 zum Adressieren des einzelnen Wortes oder der einzelnen Ziffernstelle eines 16-Ziffernstellen-RAM-Registers bestimmt ist; der dazwischenliegende Abschnitt M 115 ist zum Adressieren der einzelnen Register einer 16-Register-RAM-Seite und der bedeutendste Abschnitt XJ 116 zum Adressieren der RAM-Seite bestimmt. Zwei 12-Bit-Register SA 108 und SB werden zum Konservieren der im Zählerregister 106 enthaltenen ROM-Adressen verwendet, um zwei Verschachtelungspegel von Mikroinstruktionsunterroutinen zu erhalten. Zwei einzelne Steuer-Flip-Flops FF1 111 und FF2 112 werden, wie nachstehend ausgeführt, verwendet. Eine logische Schaltung 110 wandelt die decodierten Makroinstruktionen in die Mikrobefehle, die sie ausführen können, unter Steuerung des in der Zeichnung nicht gekennzeichneten Taktgebersignal-Decodierers um.
Ausführliche Beschreibung der CPU
Der Mikroinstruktionsdecodierer 100 enthält die Logik zum Decodieren der Mikroinstruktionen und liefern diejenigen Steuersignale, die sich auf die Datenübertragung, die arithmetischen Operationen und die logischen Reihenfolgen beziehen,
Die Mikroinstruktionen können wie folgt klassifiziert werden: arithmetische und logische Mikroinstruktionen, Mikroinstruktionen zur Datenübertragung, zur Übertragung der Steuerung des Mikroprogramms, für die Schnittstelle und in besondere Mikroinstruktionen; außerdem werden "lange" aus zwei aufeinanderfolgenden Bytes zusammengesetzte Mikroinstruktionen definiert.
- Il· -
709812/1017
Der Addierer 102 gehört zum parallelen 4-Bit-Binärtyp, und das Übertrags-Flip-Flop C 113 kann sowohl das Übertragsbit von der unteren numerischen Reihenfolge ab als auch das für die höhere Reihenfolge bestimmte Übertragsbit speichern. Der Addierer 102 bildet zusammen mit dem 4-Bit-Akkumulator 101 den arithmetischen und logischen Abschnitt der CPU 755 die sich auf die logischen und arithmetischen Operationen beziehenden und von der CPU erkannten MikroInstruktionen bestehen sämtlich aus einem einzigen Byte und ermöglichen unmittelbar arithmetische Operationen zwischen dem Akkumulator und den in den RAM- und ROM-Speichern gespeicherten Daten.
Abgesehen von seinen arithmetischen Funktionen ist der Akkumulator 101 noch zusätzlich das Hauptarbeitsregister der CPU und weiterhin der zeitweilige Übergangs- (Puffer-) Speicher für fast alle Daten, die von einem Platz auf einen anderen innerhalb des Systems übertragen werden; während der internen Datenübertragungen wirkt der Akkumulator 101 als Puffer für die RAMs und ROMs, und während des Datenaustausches mit der Außenwelt wirkt der Akkumulator 101 als Puffer sowohl für die zu übertragenden als auch für die empfangenen Daten. Der Akkumulator 101 führt außerdem die Funktion eines Eingabe-Bereitstellungsregisters mit Bezug auf den direkten Eingabekanal 186 aus, der dermaßen eingerichtet ist, daß er von außerhalb kommende Daten unmittelbar in die CPU einführen kann. Dieser Kanal ist für ein 8-Bit-Byte vorgesehen, das in zwei Wörter WA und VE aus vier Bits unterteilt ist, von denen jedes für sich über die Schaltungen 103 und 104 auf den Akkumulator mittels bestimmter Makroinstruktionen DIA und DIB übertragen wird.
- 15 -
709812/1017
Das ebenfalls eine Kapazität von einem Wort aufweisende Register 105 dient als zeitweiliger Datenspeicher (-puffer) und als Hilfe für den Akkumulator 101.
Vie schon erwähnt, ist das 12-Bit-Register 107 in drei Abschnitte unterteilt. Der Abschnitt L 114 ist, abgesehen von seiner "Registereigenschaft", auch noch ein Zähler, und sein Inhalt kann stufenweise um Eins unter der Steuerung des Mikroprogramms erhöht oder vermindert werden, das eine sequentielle Untersuchung der RAM-Register (die 16 Wörter oder Ziffernstellen aufweisen) gestattet. Wenn der Inhalt der Abschnitte U 116 und M 115 durch das Mikroprogramm verändert wird, erlauben sie die Übertragung einer Ziffemstelle von einem ursprünglichen RAM-Platz (der durch den Abschnitt L und den ursprünglichen Inhalt von U und M definiert wird) auf den entsprechenden Platz auf einer anderen RAM-Seite (der durch den neuen Inhalt von U und M definiert wird); während dieser Veränderungsoperationen der RAM-Adressen werden der Akkumulator 101 und das Hilfsregister 105 zum zeitweiligen Speichern der acht Bits höherer Reihenfolge (U, M) benutzt, die sich auf die ursprüngliche RAM-Adresse beziehen und wiedergefunden werden müssen, wenn die laufende RAM-Adresse ("Zeiger") nicht verlorengehen soll.
Das (12-Bit-) Zählerregister 106 enthält die Adresse derjenigen Mikroinstruktion des Mikroprogramms, die als nächste ausgeführt werden soll; der den sechs am wenigsten bedeutendsten Bits des Registers 106 entsprechende Abschnitt bildet einen unabhängigen Zähler, der üblicherweise um Eins bei jedem Mikroinstruktionszyklus stufenweise erhöht wird. Die sechs bedeutendsten Bits identifizieren den ROM-Chip und innerhalb desselben die Seite (die ROM-Seite umfaßt 6k Bytes, und ein ROM-Chip umfaßt 16 Seiten); diese sechs Bits können nur mittels
- 16 -
709812/1017
der Mikroinstruktionen TL (Übertragung, lang) oder TML (Übertragung und Speicherung, lang) verändert werden.
Die beiden Konservierungsregister 108, 109» welche als Zwei-Pegel-Stapeleinrichtung (Stapel) eingerichtet sind, konservieren die Viedereintrittsadressen aus den Mikrounterroutinen und erlauben zwei Unterroutinen-Verschachtelungspegel; um sich einer größeren Anzahl von Pegeln zu erfreuen, ist eine besondere Makroinstruktion erhältlich, die das erste Konservierungsregister und den Akkumulator 101 betrifft und die ein Konservieren in einem den Wiedereintrittsädressen überlassenen RAM-Bereich 14O gestattet.
Die Flip-Flops FFV 111, FF2 112 und das dem Addierer 102 zugeordnete Übertrags-Flip-Flop C 113 können einzeln durch das Mikroprogramm gesetzt, auf Null gesetzt (rückgesetzt) und überprüft werden; sie dienen als Zustandsanzeiger.
Um die Binärzahlen, die den 8-Bit-Bytes der Mikroinstruktionen oder den 12-Bit-Codes der ROM- oder RAM-Adressen entsprechen, einheitlich darzustellen, wird von einer hexadezimalen Schreibweise Gebrauch gemacht, durch die die Zahlen in zwei bzw. drei Stellen ausgedrückt werden können und wobei von der Umwandlungsbereitschaft der Zahlen vom binären System (auf die Basis von Zwei) in das hexadezimale System (auf die Basis von 2 ) und umgekehrt profitiert wird; das hexadezimale System benutzt die folgenden 16 Stellen: 0
Um die Codes (mit 8 oder 16 Bits) der Instruktionen des Programms der Maschine (die an anderer Stelle auch Makroinstruktionen des Makroprogramms genannt werden) darzustellen, wird eine oktale Schreibweise übernommen und auch in diesem Fall von der Umwandlungsbereitschaft der Zahlen vom binären System in das oktale System (auf die Basis von 2 ) und umgekehrt profitiert.
- 17 -
709812/1017
Die Mikroinstruktionsfolgen, die mehrere Male im Mikroprogramm Verwendung finden sollen, sind in Übereinstimmung mit der bekannten Unterroutinen-Technik angeordnet, damit sie nur einmal mittels des einfachen Programmierens jeweils einer einzigen Ruf-Mikroinstruktion oder höchstens einer Gruppe von lediglich ein paar Ruf-Mikroinstruktionen darin geschrieben und andererseits so oft darin gerufen werden können, wie dies notwendig ist.
"Rufen" einer Unterroutine bedeutet, den normalen Fluß des Mikroprogramms zu unterbrechen, um diejenigen Instruktionen auszuführen, die die Routine bilden, und anschließend auf die der Unterbrechung folgende Mikroinstruktion zurückzugehen,
Es gibt sieben Unterroutinen-Verschachtelungspegel, von denen zwei mittels der beiden Adressenkonservierungsregister 108, 109 der zentralen Einheit 75 erhalten werden und die anderen fünf mittels einer zweckentsprechenden Routine (CALL) und einer geeigneten Folge (IMPRET) erhalten werden können.
Das Bedienungspult
Das Bedienungspult 27 (Fig. 3) weist eine Reihe von Signalisier- und Vorbereitungseinrichtungen auf, die die Bedienungsperson zum Prüfen und Steuern der Maschine während ihres Betriebs benötigt.
Insbesondere sind die folgenden Einrichtungen vorgesehen: ein leuchtender ON/OFF-Druckknopf 51 mit einem weißen Licht, der anzeigt, ob die Maschine an- oder ausgeschaltet ist. Dieser Druckknopf versetzt die Maschine in den angeschalteten ("ON") Zustand und leitet ein automatisches Auf-Null-Setzen ein, das die Verarbeitungseinheit initialisiert.
- 18 -
709812/1017
Eine üblicherweise gelöschte "Fehler"-Lampe 52 Leuchtet in einem roten Licht auf, wenn Eingabe- und Ausführungsfehler vorkommen.
Eine alphanumerische optische Leuchtanzeige ("Bedienungsperson-Leitanzeige") 53 mit sieben LeuchtSegmenten kann die Bedienungsperson während der Einführung der Daten über die Tastatur und beim Laden des Programms leiten. Es ^ib* 1°" Zeichen, die optisch angezeigt werden können: die zehn Dezimalstellen (θ bis 9) zuzüglich der Zeichen AbCdEF (durch die kleinen Buchstaben b und d soll eine Verwechslung mit 8 und 0 vermieden werden)·
Eine Zwei-Stellen-Programmauswähleinrichtung ^h wird nur in dem Fall erfühlt, wenn sich die Maschine im programmierten Betrieb befindet, und dient dazu, die Verarbeitung auf dem im Speicher aufgezeichneten Programm 1 (P1) oder 2 (P2) zu starten, wenn die Auswähleinrichtung bei der Ausführung einer zweckentsprechenden Instruktion erfühlt wird.
Eine Zwei-Stellen-Auswähleinrichtung 57 für den Maschinenbetrieb kann dermaßen eingestellt werden, daß die Maschine entsprechend in den manuellen oder programmierten Betrieb verbracht werden kann« Die Maschine sorgt für ein automatisches Testen der Auswahleinrichtung auf Anforderung des Programms in der Initialisierungsstufe und im programmierten Betrieb nach jeder Einführungsinstruktion KN oder KNL aus der Tastatur, wie nachstehend beschrieben werden wird.
Eine Dezimalstellen-Auswähleinrichtung 56 ist von Bedeutung und wird nur dann getestet, wenn die Maschine sich im manuellen Betrieb befindet. Dieses Testen findet auf Initiative des Mikroprogramms immer dann statt, wenn die erste Ziffer einer
- 19 -
7 0 9 8 12/1017
Zahl angeschlagen wird, und dient dazu, die Anzahl der gerade eingegebenen und gedruckten Dezimalstellen zu prüfen. Insbesondere kann die Auswähleinrichtung vier Stellungen zwecks einer an sich bekannten Prüfung einnehmen, die jeweils "0", "2", "3" und "ADD MODE" entsprechen.
Eine Abrunde- und Summierungsauswähleinrichtung 55 wird ebenfalls nur dann getestet, wenn die Maschine auf manuelle Art und Weise arbeitet. Das Testen, das auf Initiative des Mikroprogramms und nur in Übereinstimmung mit der ersten Ziffer einer eingegebenen Zahl stattfindet, dient dazu, das Abrunden des Ergebnisses zu bewirken. Die Auswähleinrichtung 55 kann insbesondere acht Stellungen einnehmen, von denen vier Stellungen jeweils stehen für: "0", Abrunden wegen eines Fehlers; "9"» Abrunden wegen Überschreitens; "5"» mathematisches Abrunden mit einer Addition von "5" zu der bedeutendsten zu setzenden Dezimalstelle; und "T", Abrunden auf die ganze Zahl mit einer Addition von 1-10 zu der abzurundenden Zahl, wobei "n" die Anzahl der Dezimalstellen ist. Die anderen vier Stellungen, die durch das Symbol "A" gekennzeichnet sind, das den bereits beschriebenen vier Symbolen hinzugefügt wird, lösen die automatische Summierung im "Gesamtsummen"-Register der Teilsummen und der Multiplikations- oder Divisionsergebnisse aus, und zwar durch ein Kennzeichnen der Summenfunktionstaste T 65 und der Gleichheitszeichen-Funktionstaste = 68, so daß das Anschlagen der Taste T 6ht abgesehen vom Drucken des Inhalts des Akkumulatorregisters, zusätzlich auch noch die algebraische Summierung desselben im "Gesamtsummen11-Register 135 bzw. das Anschlagen der Taste = 68 das algebraische Summieren im "Gesamtsummen"-Register 135 des Ergebnisses der Multiplikation oder Division bewirkt, auf die sich dieses Anschlagen bezieht.
- 20 _
709812/1017
Die Maschine 1 (Fig. 1) ist außerdem mit einem Auswähleiiirichtungsschalter 58 zum Einführen des Programms entweder über die Tastatur 2 oder über den Programmträger 33 und mit einer Programmladetaste 19 (Fig. i) versehen, die das Laden des Programms auf dem Träger 33 in den Speicher beim Einsetzen des Programmträgers 33 in. eine Ausnehmung 59 der Maschine startet, wie dies im wesentlichen in der britischen Patentanmeldung Nr. i6 646/76 beschrieben ist.
Die Tastatur
Fig. 3 zeigt die Tastatur 2, die mit den üblichen Nummerntasten und Funktionstasten KC (Tastatur frei); + (schwarzer Balken); - (roter Balken); GT (blauer Balken); T; S; X; =; 7; diese Symbole bringen die Tasten 61, 62, 65, 63» tkf 66, 67» 68 bzw. 69 des elektrischen Kontakttyps, die mit der zentralen Einheit 75 (Fig· h) unter Zwischenwirkung der Einheiten 80, 81 und 82 verbunden sind. Im manuellen Betrieb können sämtliche Tasten verwendet werden; im programmierten Betrieb können vtm den Funktionstasten nur die Tasten KC, +, - und GT verwendet werden; das Anschlagen einer der anderen Tasten ruft eine fehlerhafte Bedingung (mit Aufleuchten der entsprechenden Lampe 52) hervor, die von der Bedienungsperson durch ein Anschlagen der Taste KC 61 und durch ein anschließendes korrektes Wiederholen des Anschlagens desjenigen numerischen Feldes von Anfang an aufgehoben werden muß, bei dessen Eingabe die fehlerhafte Bedingung vorgekommen ist. Außerdem muß im programmierten Betrieb die Eingabe eines numerischen Feldes immer durch das Anschlagen einer der drei Funktionstasten + oder - oder GT, der Tasten 62, 65 bzw. 63,auf bekannte Weise beendet werden.
- 21 -
709812/1017
Die Eingaben von - (roter Balken) und von GT (blauer Balken) werden getrennt voneinander in einer zweckentsprechenden RAM-Zelle ("roter Balken" und "blauer Balken") des reservierten Speicherbereichs 1*4-3 '(Fig. 6) gespeichert, und diese Eingaben stellen auf diese Weise eine der Sprungbedingungen für das Programm dar, wie bezüglich der Instruktion BC1 beschrieben werden wird.
Im manuellen Betrieb wirken die von den Funktionstasten gerufenen Funktionen in Form komplexer Makroinstruktionen und werden ausgeführt, indem ausschließlich von den Operationsregistern RO, R1, R2, R3, d. h. von den Registern 132, 133, 13^1 bzw. 135 (von denen jedes eine Kapazität von 15 Dezimalstellen zuzüglich eines algebraischen Vorzeichens aufweist), die im RAM 79 angeordnet sind, und auch von dem Betriebsregister S 142 (gleicher Kapazität) Gebrauch gemacht wird, das ebenfalls im RAM 79 untergebracht · ist. Andererseits konservieren die Register RA bis RD bzw. ~\kk bis 1^7 ihrerseits während des manuellen Betriebs die sich auf die programmierte Operation beziehenden Teilergebnisse und alle anderen Daten, die zur Wiederaufnahme der Verarbeitung auf programmierte Art und Weise von genau derjenigen Stelle ab notwendig sind, an der die Anforderung zum Übergehen auf den Handbetrieb diese Verarbeitung eventuell unterbrochen hat. Die Operationen auf den Registern RO bis R3 finden mit den von den Auswähleinrichtungen 56 und 55 (Fig. 3) des Bedienungspults 27 festgelegten Dezimalstellen und Abrundungen mit der üblichen Kapazitätsüberschreitungskontrolle statt. Im Falle eines Fehlers leuchtet die Lampe 51 auf, und die Bedienungsperson muß die fehlerhafte Eingabe durch ein Anschlagen der Taste KC 61 löschen.
- 22 -
709812/1017
Unter Zwischenwirkung einer Instruktion EXR, die nachstehend beschrieben werden wird, können die Register RA, R^3, HC, RD; 1^4, 145» 1^6 bzw. 147 auf allgemeine Weise im programmierten Betrieb verwendet werden. Andererseits nehmen die Register RO bis R3 und S im manuellen Betrieb die folgende Bedeutung a.n:
RO 132: Eingabe-/Ausgabe-Register; Rl 133: Hilfsregister; R2 13^·! Akkumulatorregister; R3 135s "Gesamtsummen"-Register; S 142: Betriebsregister.
Die Bedeutung der Funktionstasten im manuellen Betrieb ist insbesondere wie folgt: Taste KC 6l: diese dient im Falle einer fehlerhaften Eingabe zum Löschen des vorher eingegebenen Nummernfeldes und verhindert die Einführung desselben in die Register der Maschine; sie hat außerdem weitere besondere Funktionen, die an anderer Stelle näher erläutert werden.
Taste + 62: dies ist die Additionstaste im manuellen Betrieb; sie schickt das in algebraischer Addition eingegebene Nummernfeld auf das Akkumulatorregister 13^ und druckt es mit seinem Vorzeichen und am Ende mit dem Operationssymbol (+); nach dem Drucken folgt eine Zeilenschaltung. Im Falle eines Fehlers oder eines Überschreitens der Kapazität wird ein Fehlersignal abgegeben, und im zweiten Fall wird das Akkumulatorregister in seinen ursprünglichen Zustand zurückversetzt; das Drucken wird nicht ausgeführt. In diesem Fall stellt die Bedienungsperson die ursprünglichen Zustände durch ein Anschlagen der Taste KC 61 wieder her.
Schematisch seien die folgenden Register aufgeführt (das Symbol desjenigen Registers, dessen numerischer Inhalt berücksichtigt wird, ist in Klammern angegeben, und das Zeichen--^ zeigt die Übertragung von einem Register auf ein anderes oder den Übergang auf das Drucken u.. dgl. an): (s)—» RO; (R2)-—?S;
- 23 -
709812/1017
+ (RO)-*R2. Wenn ein Überschreiten der Kapazität (Überlauf) nicht zusätzlich stattfindet, geht (r) auf das Drucken über. Wenn ein Überlauf zusätzlich stattfindet, überträgt (S) auf, R2. Das Drucken wird unterdrückt und ein Fehlersignal abgegeben.
Die Taste - 65 ist die Subtraktionstaste im manuellen Betrieb: sie schickt das in algebraischer Subtraktion eingegebene Nummernfeld auf das Akkumulatorregister und druckt es mit seinem Vorzeichen und dem Operationssymbol am Ende; nach dem Drucken erfolgt eine Zeilenschaltung, Schematisch gesehen, werden die Operationen und Fehler wie vorstehend mit Bezug auf die Taste + beschrieben gehandhabt.
Taste GT 63: dies ist die Taste zum Vorbereiten der Gesamtsumme im manuellen Betrieb. Das Anschlagen dieser Taste veranlaßt die Maschine, eine Bedingung (in der Zelle PREDIP des reservierten Speicherbereichs 1^3) zu speichern, so daß die unmittelbar danach angeschlagene Taste T 64 oder S 66 auf das GESAMTSUMMEN-Register R3 135, anstatt auf das Akkumulatorregister R2 13^, wirkt. Wenn diese Vorbereitungstaste irrtümlich am Ende einer numerischen Einführung berührt wird, wird dieses Eingabedatenwort gelöscht. Durch häufiges aufeinanderfolgendes Anschlagen der Taste GT wird die Vorbereitung bestätigt.
Die Wirkung der Tasten "T" und "S" wird durch den Zustand anderer Tasten und Auswähleinrichtungen konditioniert. Insbesondere wird beim Anschlagen der Taste "T" 6h ohne ausgewählte Summierung der Inhalt des Akkumulatorregisters gedruckt und auf Null gesetzt, und nach dem Drucken erfolgen zwei Zeilenschaltungen. Beim Anschlagen der Taste "T" mit einer Vorbereitung von "GT" ("TI") wird der Inhalt des "Gesamtsummen" -Registers 135 gedruckt und auf Null gesetzt. Nach dem
- Zh 709812/1017
Drucken erfolgen zwei Zeilenschaltungen; beim Anschlagen der Taste "T" 6k mit einer ausgewählten Summierung von "(T+)" wird der Inhalt des Akkumulatorregisters 13'+ algebraisch im "Gesamtsummentf-Register 135 summiert; das Akkumulatorregister 1Jk wird auf Null gesetzt. Nach dem Drucken erfolgen zwei Zeilenschaltungen. Wenn ein Überschreiten der Kapazität während der Summierungsoperation erfolgt, wird außerdem ein Fehlersignal 52 abgegeben und das "Gesamtsummen"-Register 135 in seinen ursprünglichen Zustand zurückversetzt, während der Inhalt des Akkumulatorregisters 13^ im ursprünglichen Zustand verbleibt; das Drucken wird mit Unterdrückung des Symbols + ausgeführt.
In diesem Fall stellt die Bedienungsperson die ursprünglichen Zustand dadurch wieder her, indem sie die Tastatur-Frei-Taste 61 anschlägt. (R3)—»S; (R2)-^R0; (rs) + (ro)—>R3; wenn ein Überschreiten der Kapazität nicht stattfindet (0)—>R2; geht (RO) auf das Drucken über. Wenn ein Überlauf vorkommt (s)-^R3; RO--*> Drucken.
Beim Anschlagen der Taste 11S" ohne Vorbereiten von "GT" (s) wird der Inhalt des Akkumulatorregisters gedruckt. Nach dem Drucken erfolgen zwei Zeilenschaltungen; beim Anschlagen der Taste "S" mit einer Vorbereitung von "GT" (Si) wird der Inhalt des "GesamtsununenM-Registers gedruckt; nach dem Drucken erfolgen zwei Zeilenschaltungen.
Die Gleichheitszeichentaste n=n vird bei Multiplikations- und Divisionsoperationen verwendet.
Die Taste nimmt diejenige Bedeutung an, die mit der zuletzt ausgeführten Multiplikations- oder Divisionsfunktion übereinstimmt.
-25 -
709812/1017
Die Taste "X" bezieht sich auf die Multiplikationsoperation, die unter Zwischenwirkung der Taste "X", um den Multiplikanden einzuführen, und der Taste "=" ausgeführt wird, um den Multiplikator einzuführen, die Operation auszuführen und das Ergebnis derselben zu drucken.
Im Falle eines Fehlers wird das Drucken nicht bewirkt, und die Bedienungsperson ist in der Lage, die ursprünglichen Zustände durch ein Anschlagen der Tastatur-Frei-Taste wiederherzustellen.
Während der Operation wird eine Prüfung auf Überlauf am Ergebnis und bei der Summierung des Ergebnisses vorgenommen, wenn das Summieren ausgewählt wurde. Im Falle eines Fehlers wird das Drucken des Ergebnisses unterdrückt, und die Bedienungsperson ist in der Lage, die ursprünglichen Zustände durch ein Anschlagen der Taste KC wiederherzustellen. Schematisch ausgedrückt heißt das: auf die numerische Eingabe folgt die Betätigung der Taste X; der Multiplikand wird eingeführt und gedruckt; nach dem Drucken erfolgt eine Zeilenschaltung; (S)—* RO; (RO)—»Drucken; auf die numerische Eingabe folgt die Betätigung der Taste "="; der Multiplikator wird eingeführt und gedruckt; das Ergebnis wird errechnet und gedruckt.
Nach dem Drucken des Operanden erfolgt eine Zeilenschaltung; nach dem Drucken des Ergebnisses erfolgen zwei Zeilenschaltungen; (RO)-» Rl; (s)-*RO; (RO )-* Drucken; (R0)^> (Rl). An dieser Stelle befindet sich der Multiplikator in R^ und der Multiplikand in RO; (RO) χ (Rl)—>S mit einem Abrunden.
Venn kein Überlauf vorgekommen ist, (s)—*R0; (RO)—*Drucken. Venn ein Überlauf vorgekommen ist, wird das Drucken unterdrückt und ein Fehlersignal abgegeben.
709812/1017
Die Taste "χ" bezieht sich auf die Divisionsoperation, die unter Zwischenwirkung der Taste -, um den Dividenden einzuführen, und der Taste "=" ausgeführt wird, um den Divisor einzuführen, die Operation auszuführen und das Ergebnis zu drucken.
Während der Operation wird eine Prüfung auf Überschreiten der Kapazität am Ergebnis und bei der Summierung des Ergebnisses vorgenommen, wenn die Summierungsauswähleinrichtung ausgewählt wurde.
Im Falle eines Fehlers wird das Drucken des Ergebnisses unterdrückt, und die Bedienungsperson ist in der Lage, die ursprünglichen Zustände durch ein Anschlagen der Tastatur-Frei-Taste 6i wiederherzustellen.
Weiterhin wird geprüft, ob der Divisor φ- 0 ist; im gegenteiligen Fall wird ein Fehlersignal abgegeben, das Drucken unterdrückt, und die Bedienungsperson ist in der Lage, die ursprünglichen Zustände durch ein Anschlagen der Taste KC 61 wiederherzustellen. Schematisch ausgedrückt heißt das: auf die numerische Eingabe folgt eine Betätigung der Taste "i"; der Dividend wird eingeführt und gedruckt; nach dem Drucken erfolgt eine Zeilenschaltung. (s)-»ROj (RO)—»Drucken; auf die numerische Eingabe folgt eine Betätigung der Taste "=w; der Divisor wird eingeführt und gedruckt; das Ergebnis wird errechnet und gedruckt ·
Nach dem Drucken des Operanden erfolgt eine Zeilenschaltung; nach dem Drucken des Ergebnisses erfolgen zwei Zeilenschaltungen. (RO)—>R1; (s)—»RO; (RO)—»Drucken; (RO)^2(R1). An dieser Stelle befindet sich der Divisor in R1 und der Dividend in RO. (RO) + (R1)-»S; (s)-»RO; (RO)-»Drucken.
- 27 -
7 0 9 8 1 2 / 1 0 1 '7
Die Druckeinheit
Fig. 2 zeigt die Druckeinheit 28, die den Kopf 29 der in der britischen Patentanmeldung Nr. 7 668/76 beschriebenen Art aufweist. Insbesondere wird der Kopf 29 von einem Schlitten getragen, der mit Bezug auf die Schreibwalze bewegbar ist und sich fortlaufend unter Zwischenwirkung einer Selektorwelle drehen kann", die parallel zur Schreibwalze angeordnet ist. Eine mit dem Kopf synchron geschaltete Synchronisierscheibe 37 zeigt der Verarbeitungseinheit 26 unter Zwischenwirkung eines Paars von Sensoren, eines Schrittsensors und eines Phasensensors 38' durch eine Reihe von Impulsen das vor die Schreibwalze verbrachte Zeichen an. Unter dem Befehl der Verarbeitungseinheit 26 bewirkt ein Elektromagnet 39 das Feststellen des Kopfes 29 mittels eines Hakens und das Drucken des ausgewählten Zeichens. Eine in der Zeichnung nicht dargestellte Auslösefeder spannt den Schlitten üblicherweise in Pfeilrichtung vor. Der Kopf 29 wird durch einen Haken unter Zwischenwirkung eines Schritt-Elektromagneten hO in Ruhestellung gehalten, der durch die Einheit 26 gesteuert wird und der außerdem für die Auslöse- und Tabulierbewegungen sorgt.
Unter Zwischenwirkung eines Richtungssinn-Elektromagneten 41, der ebenfalls durch die Einheit 26 gesteuert wird, bewirkt eine Zurück-an-den-Anfang-Welle das Rücklaufen des Kopfes 29. Die Stellung des Kopfes wird ihrerseits durch eine Synchronisierscheibe 42 unter Zwischenwirkung eines Schrittsensors mittels einer entsprechenden Reihe von Impulsen ermittelt. Ein Mikroschalter kh liefert die Nullstellung des Kopfes 29 an die Einheit 26, wenn sich der Kopf in Startstellung vor der aufgeteilten Schreibwalze 30 befindet.
Die Zeilenschaltung des Journalbogens k und der Rolle 5 wird unter Zwischenwirkung einer elektromagnetisch gesteuerten
_ 28 _
709812/1017
Kupplung 45 bewirkt, die durch die Verarbeitungseinheit 26 gesteuert und durch einen Zeilenschaltsensor 46 sowie durch eine Scheibe 46· geprüft wird. Eine auf bekannte Weise durch die Stellung des Kopfes 29 in getrenntem Betrieb gesteuerte Kupplung 47 verbindet die Zeilenschaltwelle mit der Schreibwalze 31 oder mit der Schreibwalze 30 in Abhängigkeit von
der Stellung des Kopfes vor den Schreibwalzen selbst. Die Kupplung 47 kann außerdem üblicherweise geschlossen oder eingekuppelt zur gemeinsamen Zeilenschaltung der beiden Schreibwalzen sein. Schließlich ermöglicht eine elektromagnetische Kupplung 48, die ebenfalls durch die Einheit 26 gesteuert wird, die Verbindung eines Motors 49 mit der Selektor-, der Zurück-an-den-Anfang- und der Zeilenschaltwelle.
Das Programm
Dieses setzt sich aus einer Instruktionsfolge zusammen, die die gewünschte Verarbeitung bewirken kann und bei der jede Instruktion einen. Befehl darstellt, der eine Elementarfunktion ausführen kann. Die Instruktionen werden durch ein Byte aus acht Bits (Einzelinstruktionen) oder durch zwei aufeinanderfolgende Bytes (nDoppel"-Instruktionen) gebildet.
Das Programm der die Erfindung verkörpernden Maschine wird auf dem Träger 33 (Fig· 1) aufgezeichnet, der vom Programmleser 32 gelesen wird, um das Programm in den dafür reservierten wProgrammspeicher"-Bereich 80 (Fig. 6) der RAMs 152, 155 zu laden. In der Grundauslegung der Maschine ist dieser Bereich Seite 1 des RAM 152, ausschließlich der Datenkonservierungsregister, von denen es üblicherweise vier (RA, RB, RC, RD) gibt und ausnahmsweise acht (falls RE, RF, RG, RH ebenfalls definiert sind) vorhanden sein können; alles in allem verbleiben für den Programmspeicher 80 üblicherweise 256 χ 16= 256 - 64 = 192 Wörter, d. h. 192 : 2 = 96 Bytes.
- 29 -
709812/1017
Falls RE bis RH ebenfalls definiert sind, verbleibt andererseits für den Programmspeicher eine Kapazität von (25k - B χ 16) : 2 = 6k Bytes. Bei einer erweiterten Auslegung der Maschine ist zusätzlich eine weitere RAM-Seite 155, Seite 2, vorgesehen, die ebenfalls eine Kapazität von 256 Wörtern, d. h. von 128 Bytes, aufweist, und in diesem Fall vergrößert sich die Kapazität des- Programmspeichers 80 auf 96 + 128 = 22h Bytes und kommt damit der Kapazität nahe, die sich mit Instruktionen verträgt, welche mit nicht mehr als zwei aufeinanderfolgenden Bytes erstellt sind.
Bei dem hier beschriebenen Ausführungsbeispiel gehört der Programmträger 33 zu. derjenigen Art, die in der erwähnten britischen Patentanmeldung Nr. 16 646/76 beschrieben ist, und besteht im wesentlichen aus sechsundneunzig Lamellen (Fig. 8), die mit acht auswechselbaren Zähnen I83 versehen sind, um den einem Byte des Programms entsprechenden Code zu bestimmen; das Vorhandensein eines Zahns stellt die Bits mit dem Wert "1" und die Abwesenheit eines Zahns das Bit mit dem Wert 11O" dar; diese Lamellen 180 sind ihrerseits in geeigneten Schlitzen 181 untergebracht, die entlang der Erzeugenden einer Programmträger-Trommel 182 ausgebildet sind, die ein 96-Byte-Programm tragen kann, wobei dies in Beziehung zur 96-Byte-Kapazität steht, die in der Grundauslegung für den Programmspeicher vorgesehen ist, der aus diesem Grund nicht mehr als eine Trommel enthalten kann.
Von den 96 erhältlichen Stellungen sind drei für Hilfsbytes reserviert, die nicht in den Programmspeicher eingeführt werden, und deshalb sind 93 Stellungen für die Bytes der echten und eigentlichen Instruktionen des Programms erhältlich, das in den Programmspeicher 80 eingeführt werden soll; genauer gesagt sind die ersten beiden Stellungen immer zum Signalisieren des Anfangens der.Trommel, auch "Start" genannt, re-
- 30 -
709812/1017
serviert, die von zwei aufeinanderfolgenden Bytes 11111111 dargestellt werden, und die dritte ist ständig für ein Byte reserviert, das die Adresse des Programmspei chers P-O definiert, von der ab das Programm selbst geladen \^erden soll. Diese Eigenschaft der Möglichkeit des Ladens des Programms von einer programmierbaren Stellung des Programmspeichers ab erlaubt eine Vergrößerung der Anzahl der Konservierungsregister von vier auf acht oder ein aufeinanderfolgendes Einführen von Programmen, die auf mehr als einer Trommel enthalten sind, falls eine Maschine mit erweitertem Speicher vorhanden ist, wie nachstehend beschrieben werden wird.
Das Laden des Programms in den Programmspeicher 80 (Fig. 6) findet unter Zwischenwirkung des Lesers 32 statt, der, wie in der erwähnten britischen Patentanmeldung Nr. 16 6*16/76 beschrieben ist, die einzelnen Bytes des Programms sequentiell lesen kann. Bei dem hier beschriebenen Beispiel bewirkt der Leser ein schrittweises Drehen der Trommel 182; für jede der Lamellen 180 erfühlt er das Vorhandensein oder die Abwesenheit der vorstehend erwähnten Zähne 183 und interpretiert sie als "1"- bzw. MOM-Bits. Die Signale werden dann auf die Einheit 26 über acht Leitungen 186 und eine Leitung zwecks Synchronisierens der Vorrückschritte der Trommel übertragen. Während der Stufe des Lesens des Programms und des Ladens desselben in den Speicher ist es nicht zulässig, auf der Tastatur der Maschine zu arbeiten; falls es trotzdem versucht wird, wird das eingegebene Datum nicht gespeichert.
Durch Drücken des entsprechenden Druckknopfes 19 wird ein Drehen der Trommel 182 um eine volle Umdrehung um ihre eigene Achse 18*1 bewirkt, und es findet das Laden des Programms in den RAM statt, und zwar von der Adresse für den Beginn des Programms ab, die durch das in der dritten Stellung befind-
- 31 -
709812/1017
liehe Byte definiert wird, und es wird damit fortgefahren, bis die ganze Trommel geladen worden ist; falls das Programm nicht sämtliche Stellungen der Trommel belegt, werden die freien Stellungen als Instruktionen NOP, "nicht arbeiten", interpretiert.
Wenn die Maschine eine erweiterte Auslegung besitzt und einen Programmspeicher mit einer Kapazität von 2.2k Bytes, ist es möglich, in den RAM ein Programm zu laden, das auf einer Vielzahl von Trommeln enthalten ist: die erste Trommel wird nach dem Einschalten der Maschine auf Anforderung des Mikroprogramms geladen (gestellt durch das Aufleuchtenlassen des Symbols "d" auf der Anzeige 53); die anderen können danach auf Anforderung des Programms geladen werden, was durch ein zweckentsprechendes Programmieren einer Lade-Programm-Instruktion LDP ohne ein Auf-Null-Setzen der Speicherregister ausgeführt wird. Das bedeutet, daß durch die Vervendung der Lade-Programm-Instruktion LDP ein aufeinanderfolgendes Laden von mehr als einer Programmtrommel in den Programmspeicher ermöglicht wird; dafür genügt es, daß die erste Operationsinstruktion der vorangegangenen Trommel eine Instruktion LDP ist, die das Laden der folgenden Trommel anfordert; in diesem Fall werden die folgenden Regeln beachtet:
Im Falle eines Programms, das lediglich auf einer Trommel enthalten ist, ist das den ersten beiden Bytes 11111111 für den Anfang des Programms folgende dritte Byte, das Anfang-des-Programms-Adressenbyte, 00000000 (oder 00100000 = 32, falls die Register RE bis RH der RAM-Seite 1 definiert sind und benutzt werden), und die übrigen Bytes sind Instruktionsbytes des Programms (deren Höchstzahl 93 beträgt).
- 32 _
709812/1017
Falls ein Programm auf zwei Trommeln enthalten ist, besitzen die ersten beiden Bytes der beiden Trommeln die Anfang-des-Programms-Codes 11111111. Für die erste Trommel ist das dritte Byte, das Anfang-des-Programms-Adressenbyte der ersten Trommel, 00000000 (oder 00100000 = 32, falls die Register RE bis RH ebenfalls definiert sind), und das vierte Byte ist die Instruktion LDP: 00011101, die das Laden einer zweiten Trommel anfordern wird. Sobald die Ausführung des Programms der ersten Trommel beginnt, ist die erste erkannte Instruktion in der Tat diese Instruktion LDP, die, ehe mit der Ausführung selbst fortgefahren wird, zuallererst das Laden der zweiten Trommel anfordert. Die 5· und die 96. Stellung stellen Bytes des Programms dar (die Höchstzahl beträgt 92; die letzte Stellung der Trommel kann auch das erste Byte einer Zwei-Byte-Instruktion enthalten).
Für die zweite Trommel ist das dritte Byte die Adresse 01011101 = 93 (oder 93 + 32, falls die Register RE bis RH definiert sind);.die k, bis 96, Stellung stellt Bytes des Programms dar (die Höchstzahl beträgt 93). Schließlich werden falls ein Programm auf drei Trommeln enthalten ist, die folgenden Aufteilungen vorgenommen:
1. Trommel
1. bis 2. Stellung: 11111111
3. Stellung: 00000000 (oder 00100000, falls die Register
RE bis RH benutzt werden). k. Stellung: LDP, die das Laden einer zweiten Trommel
anfordern wird.
5. Stellung: LDP, die das Laden einer dritten Trommel
anfordern wird.
6. bis 96· Stellung: Programmbytes (die Höchstzahl beträgt
91).
709812/1017 " 33 "
2. Trommel
1. bis 2. Stellung: 11111111
3. Stellung: 01011101 = 93 (oder 01111101 = 125 = 93 + 32,
falls RE bis RH definiert sind).
4. bis 96. Stellung: Programmbytes (die Höchstzahl beträgt
93).
3. Trommel
1. bis 2. Stellung: 11111111
3. Stellung: 10111010 = 186 (oder 186 + 32, falls RE bis RH
benutzt werden)·
4. bis 43. Stellung: verbleibende Programmbytes (die Höchst
zahl beträgt 4o).
44. bis 96. Stellung: nicht zu verwenden (Instruktion NOP,
"nicht arbeiten").
Durch die Verwendung der Instruktion LDP wird außerdem ein interessantes Arbeitsverfahren ermöglicht, das in Fig. 9
und 10 beispielsweise dargestellt ist.
Im dargestellten Fall der Fig. 9 hat die Maschine bereits
auf dem RAM-Bereich 80 seit einiger Zeit mit der Routine Q gearbeitet, die aus einer ersten Trommel T1 geladen wurde. Die die Routinen Q2, Q3, Q4 (Fig. 9 II) enthaltenden Trommeln T2, T3, T4 können, ohne daß die Inhalte der Register RO bis Ro und RA bis RD verändert werden, anschließend geladen werden, und von diesem Augenblick an wird die Maschine mit einem
Programm arbeiten, das aus Q1 + Q2 + Q3 + Q4 gebildet wurde, wobei Q1 ein Teil von Q ist.
Im allgemeinen kann die Maschine auch Programme handhaben, bei denen die Länge die Kapazität des zur Verfügung stehenden
- 34 -
709812/1017
Speicherbereichs überschreitet, und das Programm selbst kann in eine Vielzahl von Teilen unterteilt werden; zweien oder mehreren dieser Teile ist eine vorgegebene Anfangs-Instruktionsfolge gemein; somit kann die Wiederholung des Aufzeichnens der Anfangs-Instruktionsfolge auf dem körperlichen Träger des Programms für jeden der Programmteile, dem diese Folge gemein ist, vermieden werden. Dies ist der Verwendung der Anfang-des-Programms-Adresseninstruktion (iP) zu verdanken. Im vorstehend erwähnten und in Fig. 9 II dargestellten Beispiel wird die Folge der Instruktionen QI auf dem körperlichen Träger nur einmal (als Anfangsteil der Trommel Q) aufgezeichnet, während sie beim Ausarbeiten des Programms zweimal verwendet wird.
Im Beispiel der Fig. 10 ist von einem Programm ρ aus 372 Instruktionen ausgegangen worden, das in dis Teile p1, p2, p3, P^ unterteilt werden kann, von denen jeder eine Länge von weniger als die oder gleich der Kapazität des zur Verfügung stehenden Speicherbereichs (im Beispiel 91, 92, 95, 9't Instruktionen) besitzt; jeder Teil umfaßt Folgen von Instruktionen a, b, m, n, p. q, z, die jeweils 21, 75» 22, 53» 12, ^I und 39 Instruktionen in Übereinstimmung mit dem folgenden Zusammenstellschema enthalten: p1 = a + b; p2=a+m+n; p3 = a + m + ρ + q; pk =a+m+p+z. In diesem Fall ist es zweckdienlich, die Trommeln T1, T2, T3, T4 vorzubereiten, die jeweils die Instruktionsfolgen: Q1 = a + b mit 91 Instruktionen; Q2 = m + η mit 71 Instruktionen; Q3 = ρ + q mit 52 Instruktionen; Q4 = ζ mit 39 Instruktionen; enthalten und Anfang-des Programms-Adressen besitzen, die jeweils gleich 0, 21, k3t 55 sind.
- 35 ~
70 98 12/1017
Zuerst wird die Trommel Tl in den RAM geladen, und die Maschine arbeitet mit dem Programm p1 = a + b; dann wird die Trommel T2 geladen, und die Maschine arbeitet mit dem Programm p2 = a + m + n; anschließend wird die Trommel T3 geladen, und die Maschine arbeitet mit dem Programm p3 = a + m + ρ + q; zuletzt wird die Trommel Tk geladen, und die Maschine arbeitet mit dem Programm ph =a+m+p+z; in diesem Fall werden die Folgen a, m, p, von denen jede nur einmal auf dem körperlichen Träger des Programms aufgezeichnet ist, viermal, dreimal bzw. zweimal verwendet, so daß, während das Programm alles in allem 372 Instruktionen umfaßt, lediglich 253 auf dem körperlichen Träger aufgezeichnet werden; dies ist insbesondere dann von Vorteil, wenn der körperliche Träger des Programms dem des beschriebenen Ausführungsbeispiels entspricht. ¥enn zusätzlich die Verwendung der bedingten Sprunginstruktionen berücksichtigt wird, sind weitere komplexere Arbeitsverfahren erhältlich, von denen alle auf derjenigen Eigenschaft der Maschine basieren, nach der das Laden von aufeinanderfolgenden fortlaufenden Programmen in einen Speicher akzeptiert wird, ohne dadurch die Inhalte der Arbeitsregister oder der Konservierungsregister beim Laden eines folgenden Programms mit Bezug auf den Inhalt zu verändern, der darin am Ende der Verarbeitung des vorangegangenen Programms belassen wurde.
Während der Programmladestufe ist es nicht gestattet, irgendeine andere Operation auf der Maschine auszuführen; die Maschine ist außerdem gegen falsches Laden geschützt, das während einer gesperrten Stufe befohlen werden könnte; die auf dem betreffenden Kanal vorliegende Information wird nicht beachtet.
- 36 -
709812/1017
Die Bedienungsperson wird zum Laden unter Zvischenvirkung eines zweckentsprechenden Signals auf der Bedienungsperson-Leitanzeige 53 (Aufleuchten des Symbols "d") geleitet und durch das Aufleuchten der Fehlerlampe 52 davor gewarnt, auf der Tastatur zu arbeiten, die dann erlischt, wenn das Laden stattgefunden hat und die Maschine bereit zum Arbeiten ist.
Die zugeteilten Instruktionen
Der der Buchungsmaschine zugeteilte Instruktionssatz beinhaltet Instruktionen mit einer Länge von einem oder zwei Bytes (zwei oder vier Speicherwörter). Dies sind beispielsweise diejenigen Instruktionen, die Programmsprunge und TabulierStellungen adressieren müssen, die auf sogenannten "Sofort"-Werten arbeiten, die eine numerische Information enthalten, die direkt durch das Programm eingeführt werden muß, und die eine Länge von zwei Bytes (vier Wörter) aufweisen; andererseits haben beispielsweise Additions-, Subtraktions- und Eingabe-über-Tastatur-Instruktionen eine Länge von einem Byte (zwei Wörter).
Das erste Wort des ersten Bytes enthält den Operationscode und die Längenanzeige der Instruktion (das bedeutendste Bit besitzt einen Wert von 0 oder 1, je nach dem, ob die Instruktion eine Länge von einem bzw. zwei Bytes aufweist). Die auf dem Speicher arbeitenden Instruktionen adressieren explizit nur einen Operanden: ein Register; abgesehen von der Instruktion "EXR", die zwei Operanden adressiert.
Es ist möglich, ein Register indirekt zu adressieren; in diesem Fall wird die Adresse η des Registers Rn, auf dem die Instruktion arbeiten soll, durch den Inhalt η des Indirektheitsregisters (R7) definiert, das durch die Instruktion explizit adressiert wird; dieses Register, auch "Indexregister" genannt, liegt in der Zelle INDEX des reservierten Speicherbereichs
7 09812/1017 "37 "
(ZUM) Ik3 (Fig. 7). Im allgemeinen enthält das dritte und das vierte Wort (das erste bzw. das zweite Wort des zweiten Bytes) eine Programmsprungadresse, eine Tabulieradresse oder einen Parameterwert.
Die bei dem beschriebenen Ausführungsbeispiel verwendeten Instruktionen werden" nachstehend aufgeführt.
Hinter jeder Instruktion ist zusätzlich das mnemotechnische Symbol (z. B. AR) und der Binärcode des oder der jeweiligen Bytes angegeben, wie sie von den Lamellen 180 (Fig. 8) definiert werden, wobei ein venerischer Kleinbuchstabe an die Stellen für die unbestimmten oder veränderlichen Bits gesetzt ist.
Akkumulator zum Register addieren (AR): OOIOOrrr. Die Binärzahl rrr kann die Werte 000 bis 111 annehmen, denen das jeweilige Adressieren der Register RO bis R7 (132 bis I38) (Fig. 6) entspricht. Die im Register (Akkumulator) RO 132 (Fig. 6) enthaltene Dezimalzahl wird algebraisch zum Inhalt des durch rrr adressierten Registers "R11 hinzugezählt. Das Ergebnis wird im Register nRw erstellt, und RO bleibt unverändert. Falls ein Überschreiten der Kapazität (Überlauf) vorkommt, wird der betreffende Registerstand, d. h. das Überlaufbit der Zelle SERKEY im reservierten Speicherbereich (ZRM) 1^3 (Fig. 7), auf 1 gebracht, während das Register "R" unverändert bleibt.
Akkumulator von Register subtrahieren (SR); 00101rrr. Die im Register (Akkumulator) RO 132 enthaltene Dezimalzahl wird algebraisch vom Inhalt des Registers 11R" abgezogen, das durch die Bits rrr der Instruktion auf diejenige Art und Weise adressiert wird, wie in Verbindung mit der Instruktion AR angegeben ist.
- 38 -
709812/1017
Das Ergebnis wird im Register "R" erstellt, und RO bleibt unverändert. Im Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, und das Register "R" bleibt unverändert.
Von Register auf Akkumulator übertragen (RR)t 00110rrr. Die im Register nR" enthaltene Zahl, das durch rrr auf die angegebene Art und Weise adressiert wird, wird auf das Register (Akkumulator) RO 132 zusammen mit ihrem Vorzeichen übertragen.
Von Register auf Akkumulator mit Nullsetzen des Registers übertragen (RRC)t 00111rrr. Die im Register "R" enthaltene Dezimalzahl, das durch rrr adressiert wird, wird auf das Register RO 132 zusammen mit ihrem Vorzeichen übertragen. Der Inhalt des Registers 11R" wird auf Null gesetzt.
Multiplizieren (mp); lOOOOrrr aaaaOsss. Die Binärzahl rrr adressiert das Register "R", auf dem die Instruktion arbeitet, auf die angegebene Art und Weise. Im automatischen Betrieb wird die sich im Register befindliche Zahl immer als ganze Zahl angesehen, und das Handhaben des Punktes ist die Aufgabe des Programmierers; bezüglich des Abrundeproblems werden anstatt von "zu setzenden Dezimalstellen" "nach rechts zu verschiebende Ziffern" berücksichtigt. Die Binärzahl aaaa kann lediglich einen der folgenden vier Binärwerte annehmen:
0000 zum Abrunden (auf "0") wegen eines fehlerhaften Ergebnisses;
0101 zum mathematischen Abrunden des Ergebnisses (auf "5"J;
1011 zum Abrunden (auf "9") wegen Überschreitung des Ergebnisses;
1101 zum Abrunden auf die Grundzahl: Hierbei wird zu den zu verschiebenden Ziffernstellen eine Zahl hinzugezählt,
7098 12/.10 17· " 39 "
die aus so vielen "9-en" besteht, wie Ziffernstellen selbst vorhanden sind, wodurch der mögliche Übertrag ordnungsgemäß übertragen wird. Wenn keine Verschiebungen stattfinden, wird auch kein Abrunden vorgenommen. Die Zahl sss kann die Werte von 000 bis 111 annehmen, denen jeweils Verschiebungen nach rechts (Beschneidungen) des Ergebnisses um 0 bis 7 Ziffernstellen entsprechen. Die im Register RO 132 (Akkumulator) enthaltene Dezimalzahl (Multiplikand) wird algebraisch mit der im Register "R" enthaltenen Dezimalzahl (Multiplikator) multipliziert. Das Ergebnis wird in Übereinstimmung mit dem durch aaaa Programmierten abgerundet und um so viele Ziffernstellen auf der rechten Seite beschnitten, wie dies von sss programmiert ist. Am Ende der Operation enthält RO das Ergebnis. Im Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, und RO bleibt unverändert. Wenn das Abrunden ohne ein Programmieren des Verschiebens programmiert wird, wird das Abrunden nicht ausgeführt.
Dividieren (PIV): 10001rrr OOOOOsss. Mittels der Binärzahl sss wird die Anzahl der Dezimalstellen (von 0 bis 7) des Quotienten programmiert, bei dem die Division gestoppt werden soll. Die im Register RO 132 (Akkumulator) enthaltene Dezimalzahl (Dividend) wird algebraisch durch die im Register "RM enthaltene Dezimalzahl (Divisor) dividiert, das durch rrr adressiert wird. Das Ergebnis (der Quotient) wird im Register RO 132 (Akkumulator) erstellt. Eine Division durch 11O" wird nicht gestattet und als "Fehler" signalisiert. Im Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, und RO bleibt unverändert. Die Division RO : RO wird nicht zugelassen.
- 40 -
709812/1017
Parameter addieren (AR!): 1OO1Orrr dddduuuu. Die Zahlen dddd und uuuu können die Binärwerte 0000 ... 1001 annehmen, die den Dezimalwerten 1 , ... 9 entsprechen. Die Dezimalzahl mit zwei Ziffernstellen, von denen die Zehnerstelle durch dddd bzw. die Einerstelle durch uuuu definiert ist, ist der Parameter und wird algebraisch zu den am wenigsten bedeutendsten Ziffern .der im Register "R" enthaltenen Zahl hinzugezählt, das durch rrr adressiert wird. Das Ergebnis wird in "R" erstellt. Im Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, während R unverändert bleibt.
Auf Null setzen (LZ); 01001rrr. Der Inhalt des Registers "R", das durch rrr adressiert wird, wird auf Null gesetzt. Das Vorzeichen des auf Null gesetzten Inhalts des Registers HR" ist positiv.
Von Akkumulator auf Register übertragen (LR): 01000rrr. Die im Register RO 132 (Akkumulator) enthaltene Dezimalzahl wird auf das Register "R", das durch rrr adressiert wird, zusammen mit ihrem Vorzeichen übertragen, wodurch der Inhalt des Registers RO (Akkumulator) unverändert belassen wird.
Zum Akkumulator addieren (ΛΑ); 01010rrr. Die im Register RO 132 (Akkumulator) enthaltene Dezimalzahl wird algebraisch zu dem Inhalt des Registers "R", das durch rrr adressiert wird, hinzugezählt. Das Ergebnis wird im Register RO 132 erstellt, während R unverändert bleibt. Im Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, während RO 132 unverändert bleibt.
In Akkumulator subtrahieren (SA): 01011rrr. Die im Register "R" enthaltene Dezimalzahl, das durch rrr adressiert wird, wird algebraisch vom Inhalt des Registers RO 132 (Akkumulator) abgezogen. Das Ergebnis wird in RO erstellt, während R unver-
709812/1017
ändert bleibt. Ira Falle eines Überlaufs wird der betreffende Registerstand auf 1 gebracht, während RO unverändert bleibt.
Auf unbedingte Weise springen (b); 10100000 iiiiiiii. Die Binärzahl iiiiiiii, die die Werte 00000000 bis 11100000 annehmen kann, denen die Adressen 0 bis 224 des Programmspeichers entsprechen, definiert die Bestimmung des Sprungs (das Programm springt auf unbedingte Weise zwecks Ausführens derjenigen Instruktion, deren erstes Byte an der Adresse I des Programmspeichers liegt, die durch iiiiiiii definiert wird).
Falls I größer als 224 ist, schaltet sich die Maschine ab.
Auf Bedingung Eins springen (BCi); 10100ccc iiiiiiii. Dies ist eine Gruppe von Doppelinstruktionen für einen bedingten Sprung, die für sieben verschiedene Sprungbedingungen sorgt.
Das zweite Byte iiiiiiii definiert die Bestimmung I des Sprungs. Mittels des Binärcodes ccc werden die unterschiedlichen Sprungbedingungen programmiert, die in der folgenden Tabelle zusammengefaßt sind (in der ·Άη den Inhalt des Akkumulatorregisters RO 132 aus Fig. 6 angibt):
BEQ (A = θ) ccc =001 Inhalt des Akkumulators = 0
BNE (A ji θ) ccc =100 Inhalt des Akkumulators φ 0
BGT (A > θ) ccc = 011 Inhalt des Akkumulators > 0
ELT (A^ θ) ccc = 010 Inhalt des Akkumulators^ 0
BRB (RB) ccc =101 Bedingung des "Roten Balkens" aktiviert
BBB (bb) ccc =110 Bedingung des "Blauen Balkens" aktiviert
BPR (P2) ccc s 111 Das zweite Programm ist ausgewählt worden
Venn die Sprungbedingung nicht überprüft wird, beachtet das Programm die Sprunginstruktion nicht und geht auf die Ausführung der folgenden Instruktion über. Falls die Adresse •I" größer als 224 ist, schaltet sich die Maschine ab.
709812/1017
Auf Bedingung Zwei springen (BC2): lOlOlccc iiiiiiii. Dies ist ebenfalls eine Gruppe von Instruktionen (Donpelinstruktionen für einen bedingten Sprung). Die Zahl iiiiiiii definiert die Bestimmunssadresse (im Programmspeicher) des Sprungs. Der Code ccc bestimmt die Sprungbedingungen, die in der folgenden Tabelle zusammengefaßt sind:
Mnemotechnisches Symbol Code Sprunjüledin.cung
BOV OVFW (ccc = 000) Während einer Multi
plikation, einer Addition etc. ist ein Überlaufzustand aufgetreten.
UNCOND. CALL (ccc = 001) Sprung auf Unterrou-
tine mit Speichern der Wiedereintrittsadresse (der rler Adresse der CALL-Instruktion folgenden Adresse).
Falls die Adresse I^ 224 ist, schaltet sich die Maschine ab. Am Prqgrammpegel ist nur ein Rufpegel für die Instruktionsunterroutine vorgesehen, so daß es nicht möglich ist, eine Unterroutine innerhalb einer TJnterroutine zu rufen.
Rückkehren von Unterroutine (RfCT); 01111111. Das Programm fährt von der Instruktion ab fort, die sich an derjenigen Adresse befindet, die derjenigen folgt, bei der sich das Adressenbyte der CALL-Instruktion befand. Wenn keine CALL-Instruktion zuerst ausgeführt worden ist, bewirkt die Instruktion RET einen Sprung auf die Adresse 0 (wobei die gespeicherte Wiedereintrittsadresse "0" ist).
- 43 7098 12/1017.
Tabulieren und Drucken (P); lOllOOdd pppppppp. Die Binärzahl pppppppp ist die Tabulieradresse und kann die Verte 00000001 bis 01111000 annehmen, denen die Tabulierstellungen entsprechen, die von 1 bis 120 von links nach rechts numeriert sind, wobei unter "Tabulierstellung" die Uelativstellung des Druckkopfes 29 mit Bezug auf den Papierzuführungszylinder oder die Schreibwalze 30 (Fig. 2) zu verstehen ist. Die Tabulieradresse definiert die Druckzelle des am wenigsten bedeutendsten Zeichen des zu druckenden Nummernfeldes .
Die Binärzahl dd definiert die Anzahl (0 bis 3) der zu druckenden Dezimalziffern.
Falls das Drucken von links nach rechts fortlaufend stattfindet, wobei die Länge des zu druckenden Nummernfeldes (mit den Symbolen und den eventuellen Prüfstellen) dem Programmierer bekannt ist, wird der Druckkopf 29 in Übereinstimmung mit der Druckstelle des ersten zu druckenden Zeichens (des bedeutendsten Zeichens) gebracht, wonach der Inhalt des Druckregisters RO 132 (mit den Symbolen und den eventuellen Prüfstellen) zum Drucken geschickt wird, nachdem er aus dem Druckpuffer entnommen worden ist. Das Drucken findet ohne jede Aufbereitung statt, abgesehen von dem iJezimalstellentrennzeichen; vor das Feld wird das algebraische Vorzeichen nur dann gedruckt, wenn es negativ ist, während das positive algebraische Vorzeichen nicht gedruckt wird. Wenn der laufenden Instruktion unmittelbar eine Instruktion zum Vorbereiten der Prüfstelle (CKDU, CKDF, vgl. Beschreibung der betreffenden Instruktionen) vorausgeht, wird die Prüfstelle (oder werden die Prüfstellen) als Funktion des gerade gedruckten Feldes erzeugt. Im Falle von festen Prüf-
- hk -
709812/1017
stellen (CKDF) werden die Prüfstellen am Ende des Feldes gedruckt und von ihrer am wenigsten bedeutendsten Stelle durch einen Leeranschlag getrennt; im Falle universeller Prüfstellen (CKDü) werden die Prüfstellen bzw. die Prüfstellen am Ende des Feldes ohne jede Trennung gedruckt. Das Drucken des auf Null gesetzten Registers mit den Dezimalstellen, bestimmt das Drucken von "0.0 ..." (d. h. von einer von dem Punkt gefolgten Null, die außerdem noch von so vielen Nullen gefolgt wird, wie programmierte Dezimalstellen vorhanden sind)· Das Drucken des auf Null gesetzten Registers ohne Dezimalstellen bestimmt das Drucken von "0" (nur von einer Null)·
Bedienungsperson Eins leiten (GUOl); OOOlOyyy. Die Gruppe von drei Bits yyy kann sämtliche Binärwerte von 000 bis 111 annehmen, denen jeweils die dezimalen Konfigurationen 0 bis auf der numerischen Anzeige 53 (Fig. 3) entsprechen. Auf der Anzeige 53 leuchtet das numerische und durch yyy verschlüsselte Zeichen auf. Dieses Zeichen bleibt über die gesamte Ausführung der der Instruktion GUOl folgenden Eingabeinstruktion hinweg erleuchtet.
Bedienungsperson Zwei leiten (GU02); OOOllyyy. Die Gruppe von drei Bits yyy kann sämtliche Binärwerte von 000 bis 111 mit Ausnahme von 101 annehmen (vgl. die "LOAD PROGRAM"-Inst ruktion), denen jeweils die dezimalen Konfigurationen 8, sowie die Symbole A (yyy = 010), b (Oil), C (lOO), E (110), F (ill) entsprechen. Auf der Anzeige 53 leuchtet das numerische Zeichen oder das durch yyy verschlüsselte Symbol auf. Diese Konfiguration besteht während der gesamten Ausführung der folgenden Exnführungsinstruktxon KN aus der Tastatur fort, wie nachstehend beschrieben werden wird. Die dieser
709812/1017
folgende Instruktion KN bewirkt ein Aufleuchten der Anzeige in Übereinstimmung mit der folgenden Regel:
GUIDE OPERATOR 1. KN 2. KN
8 89
9 9 1 A Al b b 1 C Ci
E El
F Fl
Programm laden (LDP): 00011101. Die Maschine wird in einen Wartezustand zum Laden der Programmtrommel verbracht, aus dem sie hervorgehen wird, wenn die Trommel geladen worden ist. Auf der Bedienungsperson-Leitanzeige 53 wird das Symbol "d" erscheinen, und die Fehlerlampe 52 leuchtet auf, um anzuzeigen, daß jedwede Eingabe über die Tastatur nicht beachtet wird. Am Ende des Ladens erlöschen sowohl die Anzeige 53 als auch die Fehlerlampe 52· Die Inhalte sämtlicher Register RO bis Ro, 132 bis I38 und RA bis RD lkk bis 147 bleiben unverändert.
Eingeben über Tastatur (KN): OOOOlOdd. Die Binärzahl dd, die sämtliche Werte von 00 bis 11 annehmen kann, definiert die für die Dateneinheit vorgesehene und die Eingabe (von 0 bis 3) darstellende Zahl der Dezimalstellen. Sie arbeitet dadurch, daß in das Register RO I32 (Akkumulator) dasjenige Nummernfeld eingeführt wird, das im Tastaturpuffer 139 enthalten ist, (wobei unter "Nummernfeld" die ganze oder nur ein Teil der Dateneinheit zu verstehen ist und der Teil natürlich bereits eingegeben wurde). Auf der Bedienungsperson-Leitanzeige erscheint eine Zahl, die auf eine bestimmte Art und Weise (genannt "fortlaufende") der Serienzahl der Eingaben aus der
709812/1017
Tastatur entspricht, die mittels der Einführung aus Tastaturinstruktionen selbst benötigt werden. Die Anzeige 53 numeriert oder zählt von 1 bis 9 und geht dann auf 1 zurück.
Wenn während der Einführung des dem Tastaturpuffer 139 entnommenen Nummernfeldes in das Register RO 132 ein Fehler (beispielsweise aufgrund eines Doppelanschlags) auftritt, leuchtet das Fehlersignal 52 auf: nachdem sie die Tastatur-Frei-Taste 6l angeschlagen hat, die den ganzen Tastaturpuffer auf Null setzt, sorgt die Bedienungsperson für das korrekte Wiedereinführen des Nummernfeldes. Die Anzeige 53 wird zwischenzeitlich nicht stufenweise erhöht.
Während der Einführung des Nummernfeldes in das Register RO 132 wird außerdem geprüft, ob die Anzahl der über die Tastatur eingegebenen Dezimalstellen weniger als diejenige oder gleich derjenigen ist, die durch die soeben erwähnte Zahl dd programmiert worden ist. Wenn diese Prüfung ein negatives Ergebnis zeitigt, leuchtet das Fehlersignal 52 auf: nachdem sie die Tastatur-Frei-Taste 6l angeschlagen hat, die den ganzen Tastaturpuffer auf Null setzt, sorgt die Bedienungsperson für die korrekte Wiedereinführung des vorstehend erwähnten Nummernfeldes. Wenn weniger Dezimalstellen eingegeben werden, als von dd programmiert worden ist, werden zusätzlich Nullen an das Ende des Nummernfeldes selbst gesetzt, deren Anzahl gleich der der ausgelassenen Dezimalstellen ist. Alle numerischen Eingaben müssen dxirch das Anschlagen eines "Balkens" (schwarz 62 oder rot 65 oder blau 63) abgeschlossen werden. Das bloße Anschlagen eines Balkens, dem keine numerische Eingabe vorangeht, setzt das Register RO 132 auf Null (was gleichbedeutend mit dem Eingeben von 0000 ... und dann des Balkens ist). Wenn das Vorzeichen die Eingabe begleitet,
709812/101.7
26A1971
kann es so oft, wie erwünscht ist, vor dem, am Ende des oder in der Mitte des Nummernfeldes eingegeben werden; wenn es nicht eingegeben wird, wird das positive Vorzeichen dem Nummernfeld zugeteilt.
Die während des Arbeitens im programmierten Betrieb akzeptierten Tasten sind die Nummerntaste 72, die Taste JO für das Vorzeichen -, die Dezimaltrennzeichentaste 71 und die Balkentasten (schwarz 62, rot 65, blau 63). Das Anschlagen jeder anderen Taste wird in Übereinstimmung mit der entsprechenden Instruktion "KN" ein Fehlersignal hervorrufen. Dem Anschlagen der Dezimaltrennzeichentaste 71 (Komma, Dezimalpunkt) darf keine numerische Eingabe (z. B. ,3^1 oder .3^1) vorangehen. Das Anschlagen der Vorzeichentaste 70 darf nicht von einer numerischen Eingabe gefolgt werden.
Wenn der Instruktion KN unmittelbar eine Instruktion zum Vorbereiten der Prüfstelle vorangeht, wird die letzte oder werden die letzten beiden eingeführten Stellen als Prüfstellen angesehen und daher überprüft; sie werden nicht auf das Register RO 132 geschickt; außerdem beträgt in diesen Fällen die Höchstlänge der Zahl (Ganzzahl + Dezimalstellen) lA bzw. 13 Ziffernstellen. Wenn die Prüfung ein negatives Ergebnis zeitigt, leuchtet das Fehlersignal 52 auf: nachdem sie die Tastatur-Frei-Taste 6l angeschlagen hat, sorgt die Bedienungsperson für die korrekte Wiedereinführung des vorher falschen Nummernfeldes«
Das bloße Anschlagen der Minus-Vorzeichentaste 7° oder das vom Minus-Vorzeichen begleitete Anschlagen der Nulltaste wird als positives Null gespeichert. Das Anschlagen von mehr als 15 Ziffernstellen oder, im Falle von Prüfstellen, mehr als 13 oder lk ruft einen Fehler hervor. Wenn der die Einführung
- 48 -
709812/1017
der Dateneinheit abschließende Balken angeschlagen wird, wird er auf die folgende Weise gespeichert:
1) Der blaue Balken 63 setzt das Bit des blauen Balkens in der Zelle des blauen Balkens des ZRM 1A3 auf das logische "1" und beläßt den Zustand des Bits des roten Balkens der Zelle des roten Balkens des ZRM 1A3 unverändert;
2) Der rote Balken 65 setzt das Bit des roten Balkens auf das logische "1" und beläßt den Zustand des Bits des blauen Balkens unverändert;
3) Der schwarze Balken 62 setzt sowohl das Bit des roten Balkens als auch das Bit des blauen Balkens (auf Null).
Einführen über die Tastatur mit Längensteuerung (KLX) ;
llOOOdd cclOnnnn. Die Binärzahl nnnn, die sämtliche Werte von 0001 bis 1111 annehmen kann, definiert die Länge des die Eingabe darstellenden Nummernfeldes (ausschließlich des algebraischen Vorzeichens und des Dezimaltrennzeichens). Die Binärzahl cc, die sämtliche Werte von 00 bis 10 annehmen kann, definiert eine der folgenden Bedingungen, unter der die Längensteuerung bewirkt wird:
cc = 00 bedeutet, daß die Länge des eingegebenen Feldes geringer als oder gleich nnnn ist,
cc = 01 bedeutet, daß die Länge des eingegebenen Feldes gleich nnnn ist,
cc = 10 bedeutet, daß die Länge des eingegebenen Feldes größer als oder gleich nnnn ist.
Die Binärzahl ddf die die Werte von 00 bis 11 annehmen kann, definiert die Anzahl der Dezimalstellen (von 0 bis 3) des die Eingabe darstellenden Nummernfeldes·
709812/1017 ~ k9 ~
Was mit Bezug auf die "Einführung-über-die-Tastatur"-Instruktion (KN) gesagt wurde, trifft auch auf diese Instruktion zu.
Außerdem wird die Länge des eingeführten Feldes auf der Basis derjenigen Bedingung überprüft, die durch die Binärzahl cc (nur hinsichtlich der numerischen Zeichen einschließlich der Prüfung auf Eins) definiert wurde. Wenn diese Überprüfung ein negatives Ergebnis zeitigt, leuchtet das Fehlersignal 52 auf: nachdem sie die Taste 6l (Tastatur-Frei) angeschlagen hat, die den ganzen Tastaturpuffer auf Null setzt, sorgt die Bedienungsperson für die korrekte Wiedereinführung des vorher falschen Feldes. Was das Verhalten der Balken anbelangt, so sei auf das verwiesen, was bezüglich der Instruktion KN vorgebracht worden ist. Außerdem überprüft die Instruktion KNL, ob die eingegebenen Dezimalstellen gleich denjenigen sind, die durch die Binärzahl dd definiert wurden. In den Längenbereich sind auch die eventuellen Prüfstellen mit eingeschlossen. Wenn Nullen am Anfang eingegeben werden, so sind sie zwar von Bedeutung, was die Steuerung der Länge anbelangt, werden jedoch nicht gedruckt.
Nicht arbeiten (NOP): 00000000. Auf diese Instruktion hin wird keine Operation ausgeführt: Das Programm geht auf die Ausführung der folgenden Instruktion über.
Verschieben nach rechts (SIIR): OllOOnnn. Die im Register RO 132 enthaltene Dezimalzahl wird nach rechts um so viele Stellen verschoben, wie durch die Binärzahl nnn (von 1 bis 7) angezeigt sind, und die Zahl selbst wird um die gleiche Anzahl von am wenigsten bedeutendsten Stellen beschnitten; an die Stellen auf der freigelassenen äußersten linken Seite werden natürlich genauso viele Nullen hinzugefügt.
- 50 -
709812/1017
Verschieben nach links ( SIIL): OllOlnnn. Die im Register RO 132 enthaltene Dezimalzahl wird nach links um so viele Stellen verschoben, wie durch die Binärzahl nnn (von 1 bis 7) angezeigt sind, und die gleiche Anzahl von Nullen wird am Ende der Zahl selbst hinzugefügt. Die bedeutendsten Stellen gehen verloren, ohne daß ein Überlauf signalisiert wird.
Tabulieren und Drucken des Datums (PD); 10110100 pppppppp. Die Binärzahl pppppppp ist die Tabulieradresse und kann die Binärwerte von 00001000 bis 01111000 annehmen, denen die Druckstellungen 8 bis 120 entsprechen. Die Tabulieradresse entspricht der Druckadresse des am wenigsten bedeutendsten Zeichens des zu druckenden Feldes. Da die Länge des zu drukkenden Feldes bekannt ist (z. B.: das Datum 13-12-73), wird der Druckkopf in Übereinstimmung mit der Druckstelle des bedeutendsten Zeichens des Feldes selbst gebracht, wonach das Datenregister zwecks Drückens beschickt wird. Der Tag, der Monat und das Jahr werden stets jeweils durch zwei Stellen dargestellt und voneinander durch das Zeichen"-" getrennt (z. B. 03-02-73).
Horizontal tabulieren (HT); 10110101 pppppppp. Die Tabulieradresse wird durch die Binärzahl pppppppp programmiert, die die Werte 00000001 bis 01111000 annehmen kann, denen die Tabulierstellungen 1 bis 120 entsprechen. Die Konfiguration pppppppp = 00000000 wird nicht zugelassen. Der Druckkopf wird in die der Tabulieradresse entsprechende Stellung gebracht.
Seitenlänge merken (PAGE): 10111100 nnnnnnnn. Die Länge der Seite entspricht der Anzahl der Zeilen derselben. Die Zahl nnnnnnnn kann die Binärwerte 00000001 bis 11111111 annehmen, denen verschiedene Seitenlängen, von 1 bis 255 Druckzeilen,
7 0 9 8 1 2 /i 0 1 T
entsprechen. Die Länge der Seite wird in das Register PAGER geladen, das durch die Zellen PAGEl und PAGE2 157, 153 des reservierten Speicherbereichs 1^3 gebildet wird, und gleichzeitig wird das Register VIR 171, 172, in dem die letzte vertikale Tabulieradresse enthalten ist, auf = 1 gesetzt.
Vertikal tabulieren (VT): 10111101 pppppppp. Die Binärzahl pppppppp, die die Binärwerte 00000001 bis 11111111 annehmen kann, definiert die Tabulieradresse, und mittels dieser werden die vertikalen Tabulierstellungen 1 bis 255 (die auf der Seite von oben nach unten fortlaufend numeriert sind) programmiert·
Der Papierbogen oder die Rolle erreichen über aufeinanderfolgende Zexlenschaltungen die programmierte Stellung, die mit Bezug auf Zeile Nr. 1 (oberer Rand) der Seite definiert worden ist. Bei Arbeitsbeginn ist es deshalb notwendig, den Bogen genau auszurichten, so daß die Druckzeile der Zeile 1 der Seite entspricht.
Die programmierte vertikale Tabulieradresse, die nicht größer als 255 sein kann, darf weder Null noch größer als die Zeilenzahl sein, die auf der Seite enthalten ist.
Symbol drucken (PI): 10110110 OOOsssss. Der Binärcode sssss dient dazu, eines von 20 Druckzeichen in Übereinstimmung mit der folgenden Korrespondenztabelle zu programmieren:
00000 0 01010
00001 1 01011
00010 2 01100 ,
00011 3 01101 = 00100 4 OHIO *
- 52 -
709812/1017
5 01111 S
6 10000 T
7 10001 X
8 10010 +
9 10011
Korrespondenztabelle (Forts.)
00101 00110 00111 01000 01001
Das programmierte Zeichen wird dort gedruckt, wo der Druckkopf ist.
Register austauschen (EXR); 10111110 lmmmOnr.n. Die Inhalte von zwei vorgegebenen Registern einschließlich des algebraischen Vorzeichens werden in Reihenfolge und wechselseitig ausgetauscht. Die Binärzahlen mmm und nnn identifizieren die beiden Register RM bzw. RN, die in den Austauschvorgang mit einbezogen sind.
Der Wert "0" bzw. 11I" von 1 zeigt an, daß der Austausch zwischen zwei Registern (RN, RM), die sich beide auf der RAM-Seite "0" 79 befinden, oder zwischen einem Register (RM), das sich auf der RAM-Seite 1 152 befindet, und einem Register (RN) stattfindet, das sich auf der RAM-Seite "0" 154 befindet.
In Übereinstimmung mit 1=0 (RM auf der Speicherseite 0,79) kann die Rinärzahl mmm, mittels welcher das Register RM identifiziert wird, die Werte 000 bis 110 annehmen, die jeweils den Registern RO ... R6 entsprechen; in Übereinstimmung mit 1=1 (RM auf der Speicherseite 1) kann sie üblicherweise die Werte 000 bis 011 annehmen, die jeweils den Registern RA, RB, RC, RD (l44, l45, 146, l47) entsprechen.
Wenn 1=1 ist, kann mm auch die Binärwerte 100 bis 111 annehmen; in diesem Fall werden vier weitere Register RE, RF, RG, RH (148, 149, 150, 151) auf der Seite I1 152 auf Kosten des Speichers auf Seite 1 definiert, der dem Programm
709812/1017
SC-
OR/ 1 Q 7 1 überlassen bleibt. Auf diese Weise ist es möglich, Konstanten in die Register RE lA8, RF l49, RG 150, RH 151 aus einer Trommel einzuführen. Die ersten beiden Bytes des Registers RB l48 müssen dann einen Sprung enthalten, der über die Konstanten hinweggeht.
Die Binärzahl nnn, mittels welcher das Register RN identifiziert wird, kann die Werte 000 bis 110 annehmen, denen jeweils die Register RO ... R~6 (I32 bis I38) entsprechen, die auf der RAM-Seite "0" 79 definiert sind, wobei der Wert 111 das Indirektheitsregister R7 anzeigt (Zelle INDEX I61 des reservierten Spexcherbereichs (ZRM) 143).
Es sei darauf hingewiesen, daß es nicht möglich ist, die Inhalte von zwei Registern auszutauschen, die sich beide auf der RAM-Seite 1, 152 befinden. Nur auf den Registern RK kann die Indirektheit ausgeführt werden.
Block austauschen (EXB): 00001111. Die Inhalte der Register RO 132, Rl 133, R2 134, R3 135 der RAM-Seite "0" 79 werden jeweils in Reihenfolge mit den Inhalten der Register RA, RB, RC, RD (l44 bis 147) der RAM-Seite 1 (152) ausgetauscht.
Absolute im Akkumulator setzen (ABS); 00001101. Der Inhalt des Registers RO 132 (Akkumulator) nimmt das positive Vorzeichen an.
Algebraisches Vorzeichen im Akkumulator auswechseln (CHS);
00001110. Das algebraische Vorzeichen wird im Inhalt des Registers RO 132 (Akkumulator) umgekehrt. Wenn der Inhalt des Registers gleich Null ist, arbeitet die Instruktion CHS nicht (+0 bleibt).
Index laden (LX); 01100000. Dadurch wird die am wenigsten bedeutendste Stelle des Akkumulatorregisters (RO) auf das
709812/1017
Indexregister (R7) (Zelle "INDEX" vom ZRM) übertragen.
Index lesen (RX); OllOlOOO. Dadurch wird der Inhalt des Indexregisters l6l auf die am wenigsten bedeutendste Stelle vom RO I32 übertragen, nachdem es auf Null gesetzt wurde.
In Dezimalzahlen ausgedrückte Stellen drücken (FDD): OOOOOddd. Durch diese Instruktion können numerische Daten in das Programm eingeführt werden. Die Binärzahl ddd programmiert von 1 bis 7 Bytes, die auf die der Instruktion FDD selbst folgen, die jedoch nicht wirklich als Instruktionen, sondern als Paare von Dezimalstellen interpretiert werden (ein Byte enthält zwei Wörter oder Stellen). Die Paare von Dezimalzeichen aa, bb, cc, ... gg, die der Instruktion in Reihe folgen, werden in das Register RO 132 gesetzt, und zwar mit den zuletzt beschriebenen Paaren an die zwei am wenigsten bedeutendsten Stellen. Das positive Vorzeichen wird der auf diese Weise im Register RO 132 erstellten Zahl zugeteilt.
Schalten Zeile (NL): 00001100. Dadurch wird das Ausführen einer Zeilenschaltung bewirkt. Wenn die Schreibwalze 31 und die aufgeteilte Schreibwalze 30 voneinander getrennt sind und der Kopf 29 sich vor der Schreibwalze 31 befindet, wird die Zeilenschaltung auf der Schreibwalze 31 ausgeführt, während sie auf der aufgeteilten Schreibwalze 30 ausgeführt wird, wenn der Kopf sich vor dieser befindet. Wenn andererseits die Schreibwalze 31 und die aufgeteilte Schreibwalze 30 durch die Kupplung k7 fest miteinander verbunden sind, wird die Zeilenschaltung nur dann ausgeführt, wenn sich der Kopf vor der Schreibwalze 31 befindet. Wenn sich der Kopf vor der aufgeteilten Schreibwalze befindet, verhält sich die Instruktion NL so wie eine Instruktion NOP (sie macht nichts).
- 55 -
7 09812/1017
Der Interpretierer
Dies ist derjenige Teil des Mikroprogramms, der für das Lesen und das Ausführen der Instruktionen (in diesem Zusammenhang auch "Makroinstruktionen" genannt) des Programms (das auch mit "Makroprogramm" bezeichnet wird) sorgt. Das Interpretier-Mikroprogramm umfaßt verschiedene Stufen, die nachstehend aufgeführt sind: Entnahme der Instruktion aus dem Programmspeicher; Erkennung; Ausschaltung der Indirektheit; Ausführung; Aktualisierung des Makroprogrammzählers. Diese Stufen sind zyklischer Natur, und nach der fünften Stufe erfolgt systematisch eine Rückkehr auf die erste Stufe (Fig. lib). Die Instruktionen werden durch 3-Bit-Bytes dargestellt und liegen jeweils in den RAMs (Seiten 1 und 2, RAMs 152, 155) in einem Paar von benachbarten Zellen (einem Byte entsprechen zwei Stellen).
Die Entnahme der Makroinstruktion findet auf der Basis des Inhalts des Makroprogrammzählers MPC statt, der von zwei aufeinanderfolgenden Stellen PCI 159 und PC2 l60 des RAM l43 gebildet wird und ein Zählen von 0 bis 255 ermöglicht, d. h. bis zu der Höchstzahl der Bytes des zu belegenden Programms, die 224 beträgt. Da der RAM in 4-Bit-Stellen aufgebaut ist, während die (Makro)Instruktionen 8-3it-Bytes sind, d. h. der Kapazität zweier Stellen entsprechen, ist es klar, daß die Inhalte von PCI 159 und PC2 l60 verarbeitet werden, bevor sie in das die RAMs 79, 152, 155 adressierende Register B 107 geladen werden, unter dessen Zwischenwirkung die Entnahme stattfindet. Bei dieser Verarbeitung muß berücksichtigt werden, daß die Programmspeicherseiten Seite l/RAM 152 und eventuell Seite 2/RAM 155 sind und daß die ersten 64 Stellen von Seite (Fig. lla) für die Konservierungsregister RA, RB, RC1 RD (l44, l45t l46, l47) reserviert sind, so daß 32 Bytes (d. h. 64 Stellen) nicht zu verwenden sind.
-56 7 0 9812/1 0 1 7
Zur Erkennung sind 2 mögliche Codes für die Makroinstruktionen vorhanden, die in 16 Gruppen klassenmäßig unterteilt werden können, welche durch die bedeutendste Stelle des Bytes (θ bis 15) identifiziert werden. Die Erkennung findet in zwei Stufen statt, in denen die zur Gruppe gehörende Instruktion in der einen Stufe und die Einzelinstruktion in der anderen Stufen ecrkannt wird. Die Isolierung der im Byte der Instruktion enthaltenen Parameter bleibt den Stufen zur Ausschaltung der Indirektheit und zur Ausführung überlassen.
Da die Indirektheit von der Adressierkonfiguration des Registers R7 bei sämtlichen sich auf die Register beziehenden Instruktionen Gebrauch macht, um das Indexregister, die RAM-Zelle INDEX 161 vom ZRM 1^3,zu adressieren, bildet die Ausschaltung der Indirektheit einen Teil der Übernahme der Parameter jeder Instruktion.
Initialisierung, programmierter oder manueller Betrieb
Nach dem Anschalten benötigt die Verarbeitungseinheit der Maschine eine Initialisierungsstufe, während deren der Datenspeicher 15^-t 1^ bis 151 und der Programmspeicher 80 auf Null gesetzt werden und außerdem die Steuerung der Befehle an der Schnittstelle 81, 82 mit der mechanischen Einrichtung 91 aufgenommen wird, um sie in einen vorbestimmten Zustand zu versetzen. Die mittels des Flußdiagramms der Fig. 12a, 12b, 13a, 13b beschriebene Initialisierungsstufe wird direkt durch das Mikroprogramm gehandhabt und äußert sich selbst durch das Verschieben des Druckkopfes 29 auf die Null-Tabulierstellung, d. h. auf die Stellung auf der äußersten linken Seite des aufgeteilten Abschnitts 30.
Venn dem Diagramm von Fig. 12a nachgegangen wird, so "tritt" die Maschine in den durch die Auswähleinrichtung 57 identi-
70981 2/1017
fizierten Betrieb "ein". Insbesondere ist es im manuellen
Betrieb notwendig, das "Drucken der Symbole" zu vermerken,
das aus dem Drucken zweier Schutzsterne auf der Rolle 5 besteht, sobald die Maschine in den manuellen Betrieb eintritt. Der "Registeraustausch" (Fig. 12b) ist die Operation, die zum Konservieren der Inhaljte der Register RO ... R6 (132 bis 138) notwendig ist, wenn das Programm durch das Umwechseln auf den manuellen Betrieb unterbrochen wird. Bei der Rückkehr auf den programmierten Betrieb stellt sich der Druckkopf 29 selbst
nach dorthin zurück, wo er sich bei der Umwechselung auf den
manuellen Betrieb befand.
Im programmierten Betrieb (Fig. 13a) besteht das anfängliche
durch das Mikroprogramm gehandhabte Verfahren aus den folgenden Schritten: Die Maschine bereitet sich selbst vor, um die mögliche Einführung des Datums über die Tastatur 2 zu akzeptieren; die Anzahl der eingeführten Zeichen, die lediglich sechs oder null betragen kann, wird geprüft; im Falle eines Fehlers wird beim nachfolgenden Anschlagen eines Balkens (schwarz 62, rot
65 oder blau 63) ein Fehlersignal 52 abgegeben, und die Bedienungsperson stellt die ursprünglichen Zustände durch einfaches Anschlagen der Tastatur-Frei-Taste 6i wieder her. Dann wird
das Datum, das durch ein Anschlagen von sechs Zeichen (einschließlich der Nullen) ohne Trennsymbole eingeführt worden
ist, sofort auf der Rolle 5 in Übereinstimmung mit dem aufgeteilten Abschnitt 30 und mit den sechs Zeichen in durch das
Symbol "-" getrennten Zweiergruppen gedruckt; z. B. 06-02-75· Wenn ein Einführen des Datums nicht erwünscht ist, so genügt es, einen Balken 62 oder 65 oder 63 ohne vorhergehende Eingabe
anzuschlagen; in diesem Fall gibt das Mikroprogramm, das die
Anzahl der eingegebenen Zeichen als gleich Null erkennt, kein Fehlersignal 52 ab.
- 58 -
709812/1017
Nach dem Anschlagen eines Balkens leuchtet das Symbol "d" auf der alphanumerischen Anzeige 53 auf, um die Bedienungsperson zu warnen, daß die Maschine von diesem Augenblick an das Laden des Programms erwartet, und zur gleichen Zeit leuchtet die Fehlerlampe $2 auf, um zu signalisieren, daß keine Eingabe auf der Tastatur als gültig in diesem Zustand der Maschine betrachtet wird. Wenn das Programm geladen wurde, erlöschen die beiden Signale gleichzeitig, und die Maschine ist zum Arbeiten mit dem Programm bereit.
Im programmierten Betrieb wird jedesmal, wenn das Programm eine Dateneinheit über den Tastaturpuffer 139 in Übereinstimmung mit einer Einführung aus der Tastaturinstruktion KN anfordert, das Mikroprogramm überprüfen, ob die Maschine sich immer noch in dem gleichen Zustand befindet; anderenfalls versetzt sich die Maschine selbst in den manuellen Betrieb.
Es folgt nun eine ausführliche Beschreibung des Flußdiagramms mit Bezug auf die erwähnten Figuren. Nach dem Anschalten der Maschine (Fig. 12a) findet die Initialisierungsstufe statt, die in Reihenfolge die folgenden Schritte umfaßt:
- Initialisierung der peripheren Einheiten (Operation 226);
- Auf-Null-Setzen (Operation 227) der Seiten 0 und 1 der RAMs 79, 152, d. h. des Datenspeichers 15^, 1kh bis I5I und des Programmspeichers 80 sowie des reservierten Speicherbereichs (ZRM) i43;
- Speichern des Zustandes der Abwesenheit eines Fehlers (Operation 228);
- Initialisierung des reservierten Speicherbereichs 143 (Operation 229);
- 59 -
709 812/1017
Lesen und Speichern des Maschinenbetriebs (Operation 230), der durch die Stellung der betreffenden Pult-Auswähleinrichtung 57 bestimmt wird (Fig. 3)· Hier erreicht das Mikroprogramm die logische Entscheidung 231 (Fig. 12a) und, je nach dem, ob der durch die Auswähleinrichtung 57 ausgewählte Betrieb manueller oder programmierter Art ist, das dem Weg 233 bzw. 232 folgende Mikroprogramm tritt in die Folge 234, die mit "MENSCH" bezeichnet ist und sich auf den manuellen Betrieb bezieht, oder in die Folge 263 (Fig. 13a) ein, die mit "PROGR." bezeichnet ist und sich auf den programmierten Betrieb bezieht. Die Folge 234 "MENSCH", die immer dann ausgeführt wird, wenn die Maschine in den manuellen Betrieb eintritt, egal, ob sie in ihm vom programmierten Betrieb her oder unmittelbar vom Anschalten her eintritt, umfaßt in Reihenfolge die folgenden Operationen:
- Ausschalten der Bedienungsperson-Leitanzeige 53 (Operation 235),
- Rücklaufen des Druckkopfes 29 an den Anfang (Operation 236),
- Drucken (Operation 237) von zwei Schutzsternen an den Stellen auf der äußersten linken Seite der Papierrolle 5t die dem Drucken im manuellen Betrieb vorbehalten ist,
- Ausführen einer Zeilenschaltung (Operation 238),
- Lesen und Speichern (Operation 239) des Zustandes der Abrunde-Auswähleinrichtung 55 und der Dezimalstellen-Auswähleinrichtung 56 (Fig. 3)» die auf dem Bedienungspult angeordnet sind, und weiterhin der "Gesamtsummen/blauer Balken"-Taste 63, die auf der Tastatur 2 liegt, sowie das der logischen Verbindung 240 (Fig. 12b) folgende
- 60 -
7098 12/1017
- methodische Austauschen der Inhalte der Arbeitsregister RO bis R3 (132 bis 135) mit den Inhalten der Konservierungsregister RA bis RD (i44 bis 1^7), um die Inhalte der zuerst erwähnten in den zuletzt erwähnten (Operation 24i ) zu speichern.
Wenn beim Anschalten der Maschine in der Tat kein manueller Betrieb ausgewählt wurde, sondern durch die Bedienungsperson im Falle der Ausführung eines Programms bei der Unterbrechung des Programms selbst ausgewählt wird, um das Wechseln auf den manuellen Betrieb zu bewirken, so enthalten die Arbeitsregister RO bis R3 (132 bis 135)» die freigegeben werden müssen, um die Ausführung von Berechnungen im manuellen Betrieb zu ermöglichen, Zwischendaten und -ergebnisse, die sich auf die Verarbeitung des Programms selbst beziehen und die alle wiederaufgefunden werden müssen, wenn die Bedienungsperson, nachdem sie die manuellen Berechnungen beendet hat, wiederum den programmierten Betrieb auswählt, wodurch die Wiederaufnahme des unterbrochenen Programms bewirkt wird. Darauf folgt
- das Auf-Null-Setzen (Operation 242) der Speicher-Nr. der Vorbereitung der Gesamtsumme, des "Vorber. GTn-Bits der Zelle 162 nPREDIPM vom ZRM 143, in der nur während des Betriebs auf die manuelle Art und Weise die Vorbereitung der Gesamtsumme gespeichert ist, die die Bedienungsperson durch ein Anschlagen der entsprechenden Taste GT/blauer Balken 63 aktiviert; und das
- Entnehmen und Erkennen eines Zeichens aus dem Tastaturpuffer 139 (Fig. 6) (Operation 243, Fig. 12b).
Bei der logischen Entscheidung 244 wird der Zustand des Tastaturpuffers 139 überprüft, um zu bestimmen, ob er sich als leer erweist oder nicht. Wenn er sich nicht als leer erveist,
- 61 -
70981 2/1017
geht das Mikroprogramm auf die Ausführung der Folge "Operationsausführung11 308 über (logische Verbindung 2*15), die die Ausführung der arithmetischen Operation fortführt, die eventuell im Gange ist. Wenn sich andererseits der Tastaturpuffer 139 als leer erweist, wird dem Weg 246 gefolgt, und die Operation 247 wird ausgeführt, durch die aus der entsprechenden Pult-Auswähleinrichtung der gegenwärtig ausgewählte Maschinenbetrieb gelesen wird, der dann im ZRM 143» Zelle 163 ASSMAC, Bit AUTO/MAN, gespeichert ist.
Der gegenwärtig ausgewählte Betrieb wird anschließend wiederum überprüft (Entscheidung 248) und, wenn es der manuelle Betrieb ist, geht das Mikroprogramm dazu über (Weg 249), (im ZRM 143» Zelle 164 DIGT, "Gesamtsummen"-Bit) die eventuelle "Gesamtsummen" -Bedingung zu lesen und zu speichern, die durch die Bedienungsperson durch ein Anschlagen der Taste GT 63 aktiviert wird. Dann wartet es (Operation 259) auf die Komplettierung der numerischen Eingabedaten, und bis diese mittels des Anschlagens einer der Funktionstasten durch die Bedienungsperson erledigt ist, tritt das Mikroprogramm in eine schleifenförmige Rückführung stromaufwärts von der Entscheidung 244 ein. Wenn die Eingabe-Dateneinheit schließlich durch das Anschlagen einer Funktionstaste 62 bis 69 komplettiert wird, nimmt das Mikroprogramm bei der Entscheidung 260 den Weg "JA" 262 und fährt mit der Ausführung der vorstehend erwähnten Folge 308 fort. Diese sorgt für die Ausführung der arithmetischen Operation, die vorher durch ein Anschlagen der betreffenden Funktionstaste eingegeben worden ist.
Wenn andererseits bei der logischen Entscheidung 248 der Maschinenbetrieb sich als der programmierte Betrieb erweist, stellt das Mikroprogramm (das dem logischen Weg 250 folgt) zuerst (Operation 251) die Relativstellung des Druckkopfes
- 62 -
709812/1017
mit Bezug auf den Papierzuführungszylinder oder die Schreibwalze 30 wieder her. Insbesondere befindet sich der Kopf genau an derjenigen Stelle, die er bei der vorangegangenen Unterbrechung des Programms belegte; das Mikroprogramm bewirkt dann den methodischen und vollständigen, dem vorher beschriebenen entgegengesetzten, Austausch (Operation 252) der Inhalte der Register RO bis R3 (132 bis 135) mit den Inhalten der Register RA bis RD (i44 bis
Auf diese Weise werden die Daten- und die Verarbeitungszwischenergebnisse, die sich auf den programmierten Betrieb beziehen und die in den Registern RA bis RD beim Wechseln auf den manuellen Betrieb konserviert wurden, in den Registern RO bis R3 wiederhergestellt. Danach wird geprüft (Entscheidung 253), ob die Eingabe aus der Tastaturinstruktion, in Übereinstimmung mit welcher das Programm unterbrochen wurde und mit der das Programm wiederaufgenommen wird, eine Instruktion KNL ist oder nicht. Im zutreffenden Fall ist es notwendig, da diese eine Doppelinstruktion ist (die aus zwei Bytes besteht), den Zähler MPC 159» I60 um eine Stelle zurückzusetzen (Operation 256), damit das erste Byte derselben wieder berücksichtigt wird und ein korrektes Interpretieren der Instruktion selbst ermöglicht werden kann. Danach wird in die Folge AUTOM 257 (Fig. 13a) eingetreten, die für ein Ausführen des Programms sorgt, nachdem das Vorhandensein desselben im Programmspeicher (Entscheidung 265) festgestellt wurde. Dieses Feststellen wird im Hinblick auf den Fall vorbereitet, in dem das Programm noch nicht initiiert worden ist, was dann geschieht, wenn die Maschine im manuellen Betrieb angeschaltet ist. Die Folge 269 ist der Interpretierer, der, wie bereits angegeben, für die Erkennung und die Ausführung der Einzelinstruktionen sorgt.
- 63 -
709812/· 1017
Falls die Maschine sich beim Anschalten im programmierten Betrieb befindet» erregt die Entscheidung 231 (Fig. 12a) den Weg 232 (Fig. 13a), der zur Folge PROGR. 263 führt. Diese beginnt damit, daß sie den Druckkopf 29 an den Anfang (Operation 26h) verbringt und dann auf das Vorhandensein (Entscheidung 265) des (im ZRM 1^3 gespeicherten) Programms prüft; wenn das Programm vorhanden ist, führt der Weg 266 direkt zum Interpretierer 269; es wird hier für die Hypothese des bereits vorhandenen Programms gesorgt, um diese Folge auch durch ein Fortfahren von der Eingabe AUTOM 257 ab verwenden zu können, was dann geschieht, wenn am programmierten Betrieb zum ersten Mal nach Anschalten der Maschine im manuellen Betrieb (vgl. Ausgabe 257 in Fig. 12b) angelangt wird.
Wenn kein Programm vorhanden ist, die Maschine gerade angeschaltet wurde und noch keine Programmtrommel 182 geladen worden ist, beginnt eine Folge, bei der unter anderem das Datum gedruckt wird. Der Weg 267 führt zur Folge 268 KC-RET (Rückkehr ab Tastatur-Frei), an der üblicherweise im Falle eines Fehlers oder eines Überlaufs (Ausgabe 283) angelangt wird, nachdem die Bedienungsperson die Taste KC 61 angeschlagen hat. Es folgt die Entnahme und die Erkennung der eingegebenen und im Tastaturpuffer 139 vorhandenen Zeichen (Operation 270); der Zustand des Puffers 139 selbst wird dann überprüft (Entscheidung 271). Wenn sich dieser als leer erweist (Weg 272), wird der laufende Betrieb gespeichert (Operation 287), wie er durch die entsprechende Auswähleinrichtung definiert worden ist; dann (Entscheidung 288), wenn der Betrieb manueller Natur ist (Weg 290) und es daher den Anschein hat, daß er nach dem Anschalten der Maschine geändert wurde, geht dieser auf das Nullsetzen des Speichers TIPOPE I67 weiter (angeordnet im ZRM,Fig. 7), der die Betriebsketten (Operation 291) identifiziert, und anschließend auf das Speichern der vorliegenden
- 6k -
70981 2H01 7
Tabulierstellung des Druckkopfes 29 in den Zellen POSATI 165, P0SAT2 166 des ZRM 1^3 (Operation 292); abschließend wird in die bereits beschriebene Folge MENSCH 234 (Fig. 12a) eingetreten für den Fall, daß die Maschine sich beim Anschalten schon im manuellen Betrieb befindet.
Venn andererseits erneut bestätigt wird, daß die Maschine sich immer noch im programmierten Betrieb (Weg 289) befindet, wartet die Maschine auf die Eingabedateneinheit (die über die Tastatur 2 eingeführt) und durch das Anschlagen einer "Endeder-Eingabe"-Taste (d. h. eines "Balkens" 62, 65, 63) beendet wird. Wenn nach einer gewissen Wartezeit (Operation 293) die Ende-der-Eingabe-Eingabe noch nicht vorgenommen wurde, wird in eine Warteschleife (306, 271, 272, 287, 288, 289, 293» 306) für dieselbe eingetreten, und die Maschine verbleibt darin, bis die Eingabe stattfindet, und natürlich so lange, wie der Tastaturpuffer 139 leer bleibt und der Betrieb nicht geändert wird.
Bei dem leeren Tastaturpuffer und bei fortdauernden automatischen Betriebszuständen wird, wenn das "Ende-der-Eingabe" schließlich eingegeben ist, an der Entscheidung 274 angelangt (Weg 307)» und es wird geprüft, ob die angeschlagene "Endeder-Eingabe" -Taste ein "Balken" ist: wenn nicht (Weg 275), ist die Fehler- oder Überlaufbedingung (283) erreicht} wenn ja (Weg 276)» wird zuerst geprüft, ob die Zahl der eingetasteten Zeichen nicht Null ist (Entscheidung 277) und dann, ob sie Sechs ist (Entscheidung 280), wonach die eingeführte Dateneinheit im Datenregister I53 des ZRM (Operation 284) gespeichert wird, und dann wird der Inhalt des Datenregisters 153 auf den Druckpuffer 141 (Operation 285) geschickt, von wo aus das Datum letzten Endes gedruckt wird (Operation 286).
- 65 -
7 09812/1017
Dann (dem Weg 305, Fig. 13a und 13b, folgend) wird eine Zeilenschaltung ausgeführt (Operation 29'+), der Druckkopf 29 wird, falls er sich in Bewegung befindet, angehalten (Operation 296), die Tastatur 2 wird gesperrt (Operation 297), der Tastaturpuffer 139 wird auf Null gesetzt (Operation 298), und das Symbol "d" auf· der Bedienungsperson-Leitanzeige 53 leuchtet auf (Operation 299)ι um ein Laden der Programmtrommel 182 (Operation 300) von der Bedienungsperson anzufordern. Vie aus nachstehend Gesagtem hervorgeht, wird die Anzeige 53» nachdem das geschehen ist, ausgeschaltet (Operation 301), das Vorhandensein des Programms im ZRM 143 (Fig. 6) wird gespeichert (Operation 302), die Tastatur 2 wird wieder gelöst (Operation 303) (Fig. 13b), und anschließend wird die Ausführung der Programminstruktionen durch ein Eintreten in die Folge 269, die den Interpretierer darstellt, initiiert.
Bei der Rückkehr auf die Entscheidung 277 (Fig. 13a), falls die Bedienungsperson absichtlich das Datum durch bloßes Anschlagen des Ende-der-Eingabe-Balkens weggelassen hat, beträgt die Zahl der eingetasteten Zeichen Null, und das dem Weg 278 (Fig. 13b) folgende Mikroprogramm geht direkt auf die Operation 296 weiter, d. h. auf das ordnungsgemäße Nichtdrucken des Datums.
Bei der Rückkehr auf die Entscheidung 280 (Fig. 13a) liegt, wenn, nachdem herausgefunden wurde, daß die Zahl der eingetasteten Zeichen nicht Null ist, herausgefunden wird, daß sie verschieden (282) von der für das Datum vorgesehenen Zahl Sechs ist, ganz bestimmt ein Eintastfehler von der Bedienungsperson vor, und es wird ein Fehlersignal 52 abgegeben (283).
- 66 -
709812/1017
P 26 kl 971.6
Laden der Programmtrommel
Diese von der Bedienungsperson manuell gestartete Operation Wird nun unter Bezugnahme auf das Flußdiagramm in Fig. "\k und beschrieben. Beim Anzeigen durch die Anzeige 53 (Fig. 3), das durch das Aufleuchten des Buchstabens nd" bewirkt wird, muß die Bedienungsperson zuerst die Programmtrommel 182 in die Maschine einsetzen und dann unter Zwischenwirkung der Taste (Fig. 1) das Drehen und das Lesen der Trommel selbst starten. An dieser Stelle geht das Mikroprogramm wie in Fig. 14 angegeben vor, nämlich:
- Es setzt sämtliche betroffenen logischen Kennzeichen auf Null (Operation 375)» d« h. ein "ermittelte-Abtastungn-Kennzeichen, das von dem nAbtastung-schon-ermitteltN-Bit der Zelle 168 des ZRM 1^3 gebildet wird und auf die aus der Leitung 187 des Lesers 32 (Fig. 2) kommenden Synchronisiersignale anspricht, ein "Byte 11111111-schon-gefurtden"-Kennzeichen und ein NÜber-den-Anfang-hinaus"-Kennzeichen, das das Lesen der "Beginn-des-Programms^-Lamelle 183 (Fig. 8) anzeigt, sowie ein NAdresse-bereits-gefundenn-Kennzeichen. Diese Kennzeichen sind Speicher mit einer Kapazität von einem Bit, die Im reservierten Speicherbereich (ZRM) 1*O in der Zelle SS 168 angeordnet sind.
- Es setzt den Zähler MPC auf den Anfangswert von -93 (Operation 376), wobei der Zähler in dieser Stufe als Zähler für die Bytes der Programmtrommel verwendet wird, die die Bedeutung einer Instruktion haben.
Die Höchstzahl an Bytes, die die Programmtrommel 182 körperlich enthalten kann, beträgt 96; wenn die drei anfänglichen Hilfsbytes weggenommen werden, sind an die Bedeutung
709812/10T7 - 67 -
!NACHGEREICHT]
2641371
einer Instruktion aufweisenden Bytes höchstens 93 vorhanden.
- Es tritt in die Folge EINGABE1 377 ein, die eine Prüfung auf das Vorhandensein des aus den Leitungen 187 (Fig. 2) kommenden Trommelabtastsignals ausführt und zuerst den Beginn des Programms (Start) auf die nachstehend beschriebene Weise erkennt·
Bis das Trommelabtastsignal vorliegt, geht das Mikroprogramm, während es auf das Signal wartet, unter Benutzung der folgenden Wege in den Kreislauf zurückt Block 378, Entscheidung 380, NEIN-Ausgang 381 dieser Entscheidung, Block 379, der das Kennzeichen der "ermittelten Abtastung1* jedesmal auf Null setzt, und dann erfolgt eine Rückkehr an den Beginn der EINGABE1 377« Wenn das Trommelabtastsignal erscheint (geht es auf das logische "1"), und deshalb wird «in Byte der Trommel gelesen, der Ausgang 382 der Entscheidung 380 öffnet sich, und das Mikroprogramm kommt an der Entscheidung 383 an·
Der NEIN-Ausgang 385 bleibt so lange offen, wie sich das nermittelte-Abtaetungn-Kennzeich.en auf Null befindet, weswegen das Kennzeichen auf 1 (Block 386) gesetzt wird, woraufhin sich der Weg 385 schließt· Bei der logischen Entscheidung ÜBER DEN ANFANG HINAUS (Entscheidung 387), wobei das nÜber-den-Anfang-hinausn-Kennzeichen sich zum ersten Mal auf Null befindet, fährt das Mikroprogramm über den NEIN-Ausgang 388 fort, von wo aus das erste Wort (das bedeutendste) des ersten gelesenen Bytes eingeführt wird (Block 390, EINGABE erstes Halbbyte), um zu prüfen, ob es gleich 1111 ist. Im negativen Fall wird der NEIN-Ausgang 392 der Entscheidung 391 geöffnet, und entlang dieses Weges geht das Mikroprogramm, nachdem es das "Byte 11111111-schon-gefunden11-Kennzeichen (Block 398) auf Null gesetzt hat, in den Kreislauf bis zum
709812/1017
- 68 -
P 26 in 971.6
Beginn der Folge EINGABE1 377 zurück und versetzt sich selbst in einen Zustand des Wartens auf das folgende Trommelabtastsignal · In diesem Fall wird das zweite Wort des Bytes noch nicht einmal überprüft, und stattdessen geht die Maschine auf das Lesen des folgenden Bytes und auf die gleiche Prüfung desselben über; sie fährt auf diese Weise fort, bis der Anfang gefunden und erkannt worden ist, so daß vor dem Anfang kein Byte als Programminstruktion interpretiert oder ausgeführt werden kann« Im zutreffenden Fall wird der Ausgang des Entscheidungselements 391 geöffnet, und das zweite weniger bedeutende Wort des ersten Bytes wird eingeführt (Block 39^ , EINGABE zweites Halbbyt·), um auch bei diesem Wort zu prüfen, ob es gleich 1111 ist; im negativen Fall kann das Byte nicht als Byte 11111111 erkannt werden, und der NEIN-Ausgang der Entscheidung 395 wird geöffnet, und nachdem das "Byte 11111111· schon-gefunden"-Kennzeichen auf Null gesetzt worden ist (Block 398), geht das Mikroprogramm über diesen Ausgang an den Beginn der Folge EINGABE1 377 in den Kreislauf zurück und versetzt sich selbst in einen Zustand des Wartens auf ein folgendes Trommelabtastsignal. Dann wird das Byte, dessen zweites Wort nicht 1111 ist, nicht berücksichtigt, und die Maschine geht auf die Überprüfung des folgenden Bytes unter Suchen nach dem Anfang über.
Wenn das zweite Wort des Bytes ebenfalls den Wert 1111 hat, wird der Ausgang 397 der Entscheidung 395 geöffnet und an der logischen Entscheidung angelangt, die durch die Entscheidung 399 ("Byte 11111111-schon-gefunden"-Kennzeichen = 1) gebildet wird· Hier ergeben sich zwei Fälle, je nach dem, ob ein Byte 11111111 bereits vorher gelesen wurde oder nicht. Wenn kein Byte jemals vorher gelesen wurde und das jetzt in
- 69 -
709812/1.017
Betracht gezogene Byte deshalb das erste gefundene Byte 11111111 ist, befindet sich das "Byte 11111111-schon-gefunden"-Kennzeichen immer noch auf dem logischen Null, und daher ist der NEXN-Ausgang 401 des Entscheidungselements geöffnet, so daß das Kennzeichen auf 1 gesetzt wird (Block 402) und das Mikroprogramm somit an den Beginn der Folge 377 in den Kreislauf zurückgeht und sich selbst in einen Zustand des Wartens auf ein zweites Byte 11111111 versetzt, das den Anfang beschließt·
Wenn andererseits vor dem gerade gelesenen Byte ein weiteres Byte 11111111 bereits gelesen worden ist, befindet sich das "Byte 11111111-schon-gefunden11 -Kennzeichen schon auf dem logischen "1H, und deshalb wird bei der logischen Entscheidung 399 dem "JA11-Weg 400 gefolgt, so daß das "Über-den-Anfanghinaus"-Kennzeichen auf 1 gesetzt wird (Operation 403), um anzuzeigen, daß der Anfang gefunden wurde; dann wird eine Rückkehr an den Beginn der Folge EINGrABEI 377 vorgenommen und auf die erste Instruktion gewartet. Wenn diese gelesen wird, wird dem Weg 382 (JA) bei der logischen Entscheidung 380 gefolgt, so daß das "ermittelte-Abtastungn-Kennzeichen auf 1 gesetzt wird (Operation 386), und dann wird bei der logischen Entscheidung 387t wobei sich das "über-den-Anfanghinaus1* -Kennzeichen auf 1 befindet, dem Weg 389 (JA) nach Fig. 15 gefolgt· Hier ergeben sich wiederum zwei Fälle, je nach dem, ob es eine Frage des ersten nach dem Anfang gelesenen Bytes oder irgendeines folgenden Bytes ist.
Im Falle des ersten unmittelbar dem Anfang folgenden Bytes, üblicherweise des dritten aus der Programmtrommel gelesenen Bytes, befindet eich das "Adresee-schon-gefunden"-Kennzeichen
- 70 -
709812/1017
P 26 in 971.6
auf dem logischen Null, und bei der logischen Entscheidung kOk (Fig. 15) wird dem Weg kO5 gefolgt, der zum Interpretieren desjenigen Bytes führt, das als Adresse des Programmspeichers 80 gelesen wurde, aus dem das Programm selbst darin geladen werden muß: Das weniger bedeutende Wort (oder "Halbbyte ") des Bytes wird eingeführt (Operation kOj) und dann im ZRM 1^3 gespeichert (Operation **08); dann soll das bedeutendste Wort des Bytes in den Speicher eingeführt werden (Operation kO9)i die Notwendigkeit, das gelesene Byte in zwei die Bauelemente bildende Halbbytes aufzuteilen, ist auf die Tatsache zurückzuführen, daß die CPU 75 nur ^-Bit-Wörter auf parallele Weise verarbeiten kann, während das Byte acht Bits umfaßt· Anschließend wird zu dem numerischen und durch das Byte (Operation 4ΐθ) ausgedrückten Wert 32 hinzugezählt, um zu berücksichtigen, daß die ersten vier Register (von denen jedes 16 Wörter, d. h. acht Bytes, aufweist) der Seite des RAM 152 im Programmspeicher (der aus den Registern RA, RB, RC, RD (lkk bis 1^7) zum Konservieren der Ergebnisse des Programms während des manuellen Betriebs besteht) gesperrt sind; nach dem Speichern des Ergebnisses der vorangegangenen Addition im RAM, ZRM 143 (Operation kl 1) wird dann die Adresse mit Zwei multipliziert (Operation k"\2)t um von der Zahl der Bytes auf die Wortzahl überzugehen; abschließend wird die Erfassung der Beginn-des-Programms-Adresse unter gleichzeitigem Setzen des "Adresse-schon-gefunden"-Kennzeichens auf (Operation kl3) gespeichert; dann wird das Wiedereintreten am Beginn der Folge EINGABE1 377 ausgeführt (Ausgang klk).
Bei der'jetzt erfolgenden Rückkehr auf die logische Entscheidung kOk wird, wenn andererseits sich das "Adresseschon-gefunden"-Kennzeichen sich auf dem logischen N1H befindet, was bedeutet, daß über den Anfang hinaus das die
709812/1.017
P 26 4i 971.6
Beginn-des-Programms-Adresse liefernde Byte ebenfalls gelesen worden ist - dies ist der Fall beim Lesen sämtlicher folgender Bytes -, dem Weg 406 gefolgt, der zur Interpretierung des jetzt als normale Programmingtruktion gelesenen Bytes führt· Das jetzt aus der Programmtrommel gelesene Byte wird in die CPU 75 (Akkumulatorregister A 101) eingeführt und im Programmspeicher 80 (Operationen 415 bis 4i8) gespeichert; da die CPU 75 eine Kapazität von vier Bits aufweist, wird diese Operation in zwei Abschnitten ausgeführt, indem das Byte in zwei Halbbytes, ein bedeutendstes und ein weniger bedeutendes Halbbyte, unterteilt wird, die gleichzeitig in Zellen CSTRI I69 und CSTR2 170 (ZRM) gespeichert werden. Dann wird der Inhalt des Speicherindexes im Programmspeicher um eine Grundzahl stufenweise erhöht (Operation Ί19), der zum Auswählen desjenigen Speicherplatzes vorbereitet ist, auf dem das folgende Byte gespeichert wird.
Bei der logischen Entscheidung 420 wird, wenn kein ÜBERSPRINGEN, das aus dem RAM zwecks Ausführens des Programms bei 427 führt, vorgesehen ist, dem Weg 422 gefolgt, und der Makroprogrammzähler MPC (159, I60) (der zu Beginn bis auf -93 geladen wurde) wird um +1 stufenweise erhöht, und dann findet, nachdem geprüft wurde, daß sein Inhalt noch nicht Null erreicht hat (Entscheidung 424), eine Rückkehr über den Weg 426, 428 an den Beginn der Folge EINGABE1 377 unter gleichzeitigem Warten auf das folgende Byte statt; dadurch wird bei jedem darauffolgenden Byte, das aus der Trommel 182 gelesen und im Programmspeicher 80 gespeichert wird, der negative Inhalt des Zählers MPC algebraisch um +1 stufenweise erhöht, wodurch sich der absolut· Wert Null nähert. Da kein Ende-des-Programms-Byt· vorhanden ist, wird immer ein Lesen
- 72 -
709812/1017
P 26 in 971.6
der ganzen Trommel bewirkt (die fehlenden Instruktionen sind den Instruktionen NOP gleich, die nicht arbeiten), bis 93 Abtastungen gezählt sind und der Bytezähler auf Null zurückgebracht ist. An dieser Stelle wird die logische Entscheidung h2k über den Ausgang k2$ verlassen und das Programm bei 427 ausgeführt.
Überschneiden des Eingehens mit dem Drucken
Um ein Beispiel zu geben, das das Überschneiden der Tastaturbedienung mit dem Drucken zeigt, wird Jetzt das in Fig. 16 dargestellte Flußdiagramm, das sich auf die Ausführung der vertikalen Tabulierinstruktion (VT) bezieht, beschrieben. Dieses Tabulieren wird durch das Ausführen von aufeinanderfolgenden Zeilenschaltungen bewirkt, die zahlenmäßig dem Unterschied zwischen der Nummer de'r programmierten Zeile ("künftige Zeile"), die vom zweiten Instruktionsbyte spezifiziert wird, und der Nummer der Zeile entspricht, die sich momentan in Übereinstimmung mit dem Druckkopf 29 ("Anzeiger der vorhandenen Zeile" genannt) befindet·
Zuerst überprüft das Mikroprogramm (Eingang 335) den Zustand des Flip-Flops MOTO, das sich im ZRM 1^3 befindet und den Zustand des Kupplungs-Elektromagneten k8 (Fig. 2) des Motors auf der Hauptwelle (Entscheidung 336) (Fig. 16) speichert; wenn sich der Elektromagnet als erregt erweist, so daß die kinematischen Elemente sich in Bewegung befinden, geht das Mikroprogramm direkt dazu über (Weg 337), den Zeilenschalt-Elektromagneten h$ (Fig. 2) (Operation 339) zu erregen; anderenfalls wird der Bewegungselektromagnet 48 davor erregt, und das Flip-Flop des ZRM, das den Zustand desselben speichert, wird danach auf 1 gesetzt (Operation 338)·
709812/1.017 - 73 -
Dann versetzt sich das Mikroprogramm selbst in einen Zustand des Wartens auf die aus dem Sensor k6 (Fig. 2) kommende Zeilenschalt-Abtastung, und bis diese ankommt, geht das Mikro programm selbst auf eine Dienstleistung für die Tastatur 2 weiter, indem es in eine zyklische Folge eintritt, die aus der Entscheidung 3^0 und der Operation 3^1 besteht, bei der das abwechselnde Abtasten der Tastatur (Operation 3^1) und das Abtasten der Zeilenschaltung (Entscheidung 3^0 ) ausgeführt wird. Dadurch kann Gebrauch von den verhältnismäßig "langen" Zeiten der elektromechanischen Bauteile gemacht werden, während der das Mikroprogramm im Leerlauf verbleiben würde, um Aufgaben wie das Abtasten der Tastatur auszuführen, die in "kurzen" Zeiten bei "elektronischer" Geschwindigkeit erledigt werden.
Wenn die Abtastung ankommt, ist das Ergebnis der Überprüfung der Abtastung der Zeilenschaltung positiv, und das Mikroprogramm tritt aus der vorstehend erwähnten zyklischen Folge auf dem Weg 3^2 (Ausgang 1 des Entscheidungselements "ABTASTEN DER ZEILENSCHALTUNG") hervor; dann wird (Operation 3^3 der Zeilenzähler 171» 172, der die vorliegende Zeilenanzeigenummer (die im ZRM mittels der Zellen RIGAT1 171, RIGAT2 172 erhalten wurde) speichert, um 1 stufenweise erhöht. Anschließend wird (Operation 3^4) ein Vergleich zwischen dem Inhalt des Zeilenzählers 171» 172 und dem Inhalt des Registers PAGE 157» 158 ausgeführt, das die Zeilenzahl auf der Seite speichert (das Register PAGE wird mittels der Zellen PAGE1 157 und PAGE2 158 des ZRM 143 gebildet; die Zahl der Zeilen auf der Seite ist ein von 1 bis zu einem Höchstwert von 255 veränderlicher Parameter); wenn die beiden Zahlen gleich sind, wird der Zeilenzähler auf Null gesetzt (Operation 345) inso weit, als die vorhandene Zeile sich als letzte der Seite er-
7098 12/1.0 17 " 7k '
weist und die folgende dann erkannt und als erste Zeile der neuen Seite numeriert werden muß; wenn die vorstehend erwähnten beiden Zahlen verschieden sind, bleibt der Zeilenzähler 171f 172 unverändert. In beiden Fällen bereitet sich dann das Mikroprogramm auf den Vergleich (Operation 346) vor, wobei die programmierte Zeile (oder "künftige Zeile") in den Zellen 169 POSFU1 und I70 P0SFU2 des ZRM " 143 gespeichert ist, d. h. für den Vergleich zwischen dem Inhalt des Zeilenzählers (Anzeiger der vorhandenen Zeile) und der programmierten Zeilenzahl; dann findet der Vergleich selbst statt (Operation 347» Entscheidung 348).
Wenn das Ergebnis des Vergleichs zwischen den beiden Zählern negativ ist (d. h. wenn die beiden Zahlen nicht gleich sind), bereitet sich das dem Weg 349 folgende Mikroprogramm selbst auf die Ausführung weiterer Zeilenschaltungen vor und erweist damit der Tastatur zur gleichen Zeit einen Dienst: Zu diesem Zweck tritt es in die Schleife mit der Entscheidung 350 und der Operation 351 ein, aus der es auf dem Weg 352 nur nach dem Löschen des Abtastens der Zeilenschaltung hervortritt, wonach es unter gleichzeitiger Erwartung des folgenden Abtastens der Zeilenschaltung in die Schleife mit der Entscheidung 340 und der Operation 341 eintritt und die Tastatur abtastet, bis die folgende Abtastung der Zeilenschaltung auftritt. Wenn andererseits das Ergebnis des Vergleiches positiv ist, wobei die Zahl des Anzeigers der vorhandenen Zeile {die im Zeilenzähler enthalten ist) gleich der Zahl der von der Instruktion programmierten Zeile ist, d. h. wenn die vom Programm benötigte Tabulierung bewirkt worden ist, wird der Zeilenschalt-Elektromagnet 45 (Fig. 2) entregt (Operation 353)» wonach das Mikroprogramm wiederum in eine Schleife mit der Operation 355 und der Entscheidung 354 eintritt und sich
- 75 .7 0 981 2/1017
selbst in einen Zustand des Wartens auf die Löschung der letzten Abtastung der Zeilenschaltung versetzt sowie gleichzeitig der Tastatur einen Dienst erweist (Operation 355)ί der Austritt aus der Schleife findet, wenn die letzte Abtastung der Zeilenschaltung gelöscht worden ist, unter Benutzung des Wegs 35& statt.
Zur besseren Klarstellung sei angenommen, daß die Anzahl der Zeilen pro Seite "60" beträgt (der Inhalt des Registers PAGE ist gleich 6o), daß sich der Druckkopf zu Beginn in Übereinstimmung mit der Zeile Nr. 48 befindet (weswegen der Zeilenzähler zu Beginn die Zahl 48 zählen wird) und daß die von der Instruktion VT programmierte Zeile durch die Tabulieradresse 50 definiert ist. Es finden dann zwei aufeinanderfolgende Zeilenschaltungen statt; nach jeder Zeilenschaltung zählt der Zeilenzähler "49" bzw. "5O"; der Vergleich mit dem Inhalt des Registers PAGE (Entscheidung 344) ergibt immer ein negatives Ergebnis, während der Vergleich mit der "künftigen Zeile" (Operation 347) beim ersten Mal ein negatives und beim zweiten Mal ein positives Ergebnis ergibt, so daß der Zeilenschalt-Elektromagnet,unmittelbar nachdem der Druckkopf, wie erwünscht, in Übereinstimmung mit Zeile Nr. 50 gebracht worden ist, entregt wird.
Es sei andererseits angenommen, daß stattdessen die in der Instruktion VT programmierte Tabulieradresse 12 ist, wobei die anderen Daten des vorhergehenden Beispiels unverändert bleiben. Dann muß der Kopf in Übereinstimmung mit Zeile 12 der nächsten Seite gebracht werden, und dies findet mittels 24 aufeinanderfolgender Zeilenschaltungen statt, von denen die ersten 11 den Druckkopf in Übereinstimmung mit Zeile unter den gleichen Bedingungen bringen werden, d. h. bei jedem Zeilenschaltzyklus wird ein negatives Ergebnis bei
- 76 709 812/1017
beiden sich auf die Entscheidungen 3^ und 3^8 beziehenden Vergleichen erhalten. Danach bringt die folgende Zeilenschaltung den Kopf in Übereinstimmung mit Zeile 60, und der Zeilenzähler wird auch stufenweise auf 60 erhöht, so daß der Vergleich mit dem Inhalt des Registers PAGE ein gleiches Ergebnis zeitigt; dann wird der Zeilenzähler auf Null gesetzt (Operation 3^5) und für die Übertragung der Nr. 1 auf die nächste Zeile vorbereitet; andererseits ergibt der Vergleich 3^7 ein negatives Ergebnis, und das Mikroprogramm tritt aus der Entscheidung 3^8 auf dem Weg 3^9 hervor und wartet auf die folgende Zeilenschaltung, wonach der Zeilenzähler auf 1 gesetzt wird. Es folgen weitere 11 Zeilenschaltungen, und in Übereinstimmung mit der letzten ergibt der Vergleich 3^8 ein positives Ergebnis, und der Zeilenschalt-Elektromagnet wird entregt, wodurch der Papiervorschub gestoppt und der Druckkopf in Übereinstimmung mit der vorgeschriebenen Zeile Nr. 12 belassen wird.
Patentansprüche:
- 77 -
7 09812/1017
SO
Leerseite

Claims (2)

  1. Patentansprüche
    /Τ.) Digitale Tisch-Buchungs- und -Rechenmaschine, die auf programmierte oder manuelle Art und Weise arbeiten kann, mit einer Tastatur zum Eingeben von (numerischen) Daten und Betriebsbefehlen, einer Druckeinheit, einer ein vorbestimmtes (Buchungs-) Programm enthaltenden Programmiereinheit, einer elektronischen Verarbeitungseinheit zum Ausführen arithmetischer Operationen in manueller Weise und zum Ausführen dieses Programms sowie zum Steuern des manuellen Betriebs in der programmierten Weise in Erwiderung auf die Befehle, und einem Daten und Verarbeitungsergebnisse (des Programms) enthaltenden Betriebsspeicher, gekennzeichnet durch einen Auswählschalter für die programmierte oder manuelle Art und Weise, einen Konservierungsspeicher xind eine durch das Programm gesteuerte Einrichtung zum Aktivieren des Schalters und zum Unterbrechen der Ausführung des Programms sowie zum Starten des Betriebs in der manuellen Weise zum methodischen Übertragen des Inhalts des Betriebsspeichers auf den Konservierungsspeicher, wobei eine Einrichtung zum Bewirken des Rückkehrens auf die programmierte Weise, indem der Inhalt des Konservierungsspeichers methodisch auf den Betriebsspeicher zurückübertragen wird, in Erwiderung auf die Betätigung des Schalters vorgesehen ist, wodurch die Wiederaufnahme der Ausführung des Programms von denselben Daten und Verarbeitungsergebnissen ausgehend stattfindet, die im Betriebsspeicher bei der Unterbrechung der Ausführung des Programms vorhanden sind.
    - 78 -
    709812/1017
  2. 2. Buchungsmaschine nach Anspruch 1 mit einer Druckeinheit, einem papierzuführenden Zylinder oder einer Schreibwalze, die in zwei unabhängige Abschnitte unterteilt ist, welche jeweils unabhängig voneinander eine Rolle zum Drucken in der manuellen Art und Weise bzw. ein Journal-Blatt zum Drucken in der programmierten Weise tragen und vorbewegen können, einer sich bewegenden Einrichtung zum Bewegen der ersten Einheit mit Bezug auf die Schreibwalze, einem ersten Stellenspeicher, der die vorliegende Stelle der Einheit mit Bezug auf die Schreibwalze speichern kann, und einem zweiten Stellenspeicher, der die künftige Stelle der Einheit mit Bezug auf die Schreibwalze speichern kann, wobei die künftige Stelle im allgemeinen der Druckstelle des am wenigsten bedeutendsten Zeichens des zu druckenden numerischen Feldes entspricht, dadurch gekennzeichnet , daß, in Erwiderung auf die Betätigung des Schalters zum Auswählen der manuellen Weise der Maschine, die Betätigungseinrichtung lediglich das Vorbewegen der Rolle bewirken und außerdem im zweiten Speicher einen Wert speichern kann, der einer vorgegebenen Stelle der Druckeinheit mit Bezug auf einen die Rolle tragenden Bereich der Schreibwalze entspricht.
    3· Buchungsmaschine nach Anspruch 2f gekennzeichnet durch einen dritten Stellenspeicher, in dem während des Betriebs in der manuellen Weise diejenige Zahl konserviert wird, die der von der Einheit beim Anhalten des Programms belegten Stelle entspricht, durch eine erste Einrichtung zum Übertragen des Inhalts des ersten Speichers auf den dritten Speicher beim Anhalten der Ausführung des Programms, und durch eine zweite Einrichtung zum Über-
    7 0 9 812/1017
    tragen des Inhalts des dritten Speichers auf den zweiten Speicher bei Wiederaufnahme der Ausführung des Programms, wobei die erste und die zweite Einrichtung durch die Verarbeitungseinheit in Erwiderung auf die Betätigung des Schalters gesteuert werden, wodurch bei Wiederaufnahme der Ausführung des Programms die Druckeinheit automatisch an die gleiche Stelle zurückgebracht wird, an der sie sich beim Anhalten des Programms befand.
    Maschine nach Anspruch 1, gekennzeichnet durch eine Austauscheinrichtung, die vom Programm gesteuert wird und den wechselseitigen und methodischen Austausch des Inhalts des Betriebsspeichers mit dem Inhalt des Konservierungsspeichers bewirken kann.
    Ma - 25 995 -
    709812/1017
DE19762641971 1975-09-15 1976-09-15 Digitale tisch-buchungs- und -rechenmaschine Ceased DE2641971A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT69284/75A IT1048208B (it) 1975-09-15 1975-09-15 Macchina contabile e calcolatrice numerica da tavolo

Publications (1)

Publication Number Publication Date
DE2641971A1 true DE2641971A1 (de) 1977-03-24

Family

ID=11311755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762641971 Ceased DE2641971A1 (de) 1975-09-15 1976-09-15 Digitale tisch-buchungs- und -rechenmaschine

Country Status (6)

Country Link
US (1) US4114026A (de)
JP (1) JPS5237097A (de)
DE (1) DE2641971A1 (de)
FR (1) FR2362446A1 (de)
GB (1) GB1561364A (de)
IT (1) IT1048208B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0027861A2 (de) * 1979-09-14 1981-05-06 International Business Machines Corporation Schreibmaschine mit einem Apparat zum erneuten Positionieren eines Druckelements nach Wiederherstellung der Energiezufuhr

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1108103B (it) * 1978-07-18 1985-12-02 Olivetti & Co Spa Macchina per scrivere elettronica
FR2461299B1 (fr) 1979-07-09 1986-09-05 Telediffusion Fse Memoire bloc-note pour cassettes d'enregistrement de bandes magnetiques
US4419736A (en) * 1980-05-12 1983-12-06 Ncr Corporation Teleprinter terminal
JPS5860919A (ja) * 1981-10-05 1983-04-11 日本甜菜製糖株式会社 作物育苗移植用複合紙の製造方法
JPS58198198A (ja) * 1982-05-13 1983-11-18 Toshiba Corp パルスモータ制御装置
US4642767A (en) * 1984-04-23 1987-02-10 Moisey Lerner Bookkeeping and accounting system
GB2157033B (en) * 1984-09-22 1986-04-16 Tippey Keith Edward Control device for computer
JP2586125B2 (ja) * 1988-12-29 1997-02-26 東レ株式会社 長繊維不織布およびその製法
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3440619A (en) * 1967-07-14 1969-04-22 Ibm Control system for maintaining register contents during interrupt and branch conditions in a digital computer

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3265874A (en) * 1961-12-27 1966-08-09 Scm Corp Data processing devices and systems
GB1006874A (en) * 1961-12-27 1965-10-06 Scm Corp Electronic computers
US3643077A (en) * 1970-03-13 1972-02-15 Burroughs Corp Electronic printing digital calculator
US3711690A (en) * 1971-08-06 1973-01-16 Hewlett Packard Co Calculator and tester for use therewith
GB1408135A (en) * 1971-09-01 1975-10-01 Dataplex Ltd Apparatus for reproducing programmed selections of data recorded in coded form on magnetic cards
FR2159150A1 (de) * 1972-11-30 1973-06-15 Materiel Telephonique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3440619A (en) * 1967-07-14 1969-04-22 Ibm Control system for maintaining register contents during interrupt and branch conditions in a digital computer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0027861A2 (de) * 1979-09-14 1981-05-06 International Business Machines Corporation Schreibmaschine mit einem Apparat zum erneuten Positionieren eines Druckelements nach Wiederherstellung der Energiezufuhr
EP0027861A3 (en) * 1979-09-14 1981-09-30 International Business Machines Corporation Apparatus for repositioning a printing element upon power return

Also Published As

Publication number Publication date
FR2362446A1 (fr) 1978-03-17
IT1048208B (it) 1980-11-20
JPS5237097A (en) 1977-03-22
GB1561364A (en) 1980-02-20
US4114026A (en) 1978-09-12
FR2362446B1 (de) 1982-11-05

Similar Documents

Publication Publication Date Title
DE2044069C3 (de) Datenverarbeitungsterminal, insbesondere Kassenterminal
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2228742A1 (de) Programmierbare Rechenmaschine
DE1282337B (de) Programmgesteuerte elektronische Rechenanlage
DE1151397B (de) Programmgesteuerte Datenverarbeitungs-anlage mit gespeicherten Unterprogrammen
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2713253A1 (de) Programmlader fuer ein steuergeraet
DE1549498A1 (de) Rechenanlage
DE2641971A1 (de) Digitale tisch-buchungs- und -rechenmaschine
DE2601242A1 (de) Elektronenrechner mit programmspeicherung
DE1806535B2 (de) Seriell arbeitende digitale rechenanlage
DE2538978C2 (de)
DE1812137A1 (de) Elektronische Datenverarbeitungseinrichtung
DE1221037C2 (de) Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens
DE2717244C2 (de)
DE1449584A1 (de) Anordnung zur UEbertragung von Daten einer Loch- oder Magnetkarte in eine Datenverarbeitungsanlage oder umgekehrt
DE1194605B (de) Verbesserung an Geraeten zur Verarbeitung von Angaben, Informationen od. dgl.
DE3110297A1 (de) Anzeigevorrichtung
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE1474090B2 (de) Datenverarbeitungsanlage
DE1549582B1 (de) Anordnung zur bestimmung der niedrigstwertigen bit position
DE2360023A1 (de) Anordnung und verfahren zum fortschreiben von textdaten
DE1094019B (de) Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausuebung des Verfahrens
DE1214027B (de) Anordnung zur Steuerung der blockweisen UEbertragung von Rechenprogrammen oder derenersten Teilprogrammen
DE1774673C3 (de) Verfahren und Schaltungsanordnung zur Multiplikation und Division

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: MUELLER-BOERNER, R., DIPL.-ING., 1000 BERLIN WEY,

8131 Rejection