DE2458651A1 - Elektronische datenverarbeitungsanlage mit einrichtung zur fehlerbefreiung von rechenprogrammen - Google Patents
Elektronische datenverarbeitungsanlage mit einrichtung zur fehlerbefreiung von rechenprogrammenInfo
- Publication number
- DE2458651A1 DE2458651A1 DE19742458651 DE2458651A DE2458651A1 DE 2458651 A1 DE2458651 A1 DE 2458651A1 DE 19742458651 DE19742458651 DE 19742458651 DE 2458651 A DE2458651 A DE 2458651A DE 2458651 A1 DE2458651 A1 DE 2458651A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- program
- address
- memory
- instruction
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Calculators And Similar Devices (AREA)
Description
Elektronische Datenverarbeitungsanlage mit Einrichtung zur Fehlerbefreiung von Rechenprogrammen
Die Erfindung betrifft eine elektronische Datenverarbeitungsanlage
mit einer Einrichtung zur Fehlerbefreiung von Rechenprogrammen, entsprechend dem Oberbegriff des Hauptpatentanspruchs
.
Es ist auf dem Gebiet' der Datenverarbeitung bekannt, daß es notwendig ist, Programme vor ihrer Benutzung zu testen, um
Fehler und Abweichungen zu beseitigen, die während der Err stellung der Programme selbst entstanden sind. '
Normalerweise sind in Anlagen großer Rechen- und Speicherkapazität
bereits feste Fehlerbefreiungsprogramme vorhanden und geeignet, dem Operator alle Möglichkeiten zu geben, den
Aufbau des getesteten Programms zu verfolgen und eine visuelle Anzeige der möglicherweise vorliegenden Fehler zu erhalten.
Da diese festen Fehlerbefreiungsprogramme mit dem zu testenden
Programm in Wechselwirkung treten, müssen sie neben diesem im Speicher der Anlage vorhanden sein, so daß nur Anlagen
großer Dimensionen diese Möglichkeiten bieten können.
509 8 2 8/0783
BERLIN: TELEFON (030)8312088 KABEL: PROPINDUS -TELEX Ο184Ο57
MÜNCHEN: TELEFON (0811) 22 50 80 KABEL: PROPIN DU S · TELEX OB 2+244
Bei Anlagen kleiner Dimensionen, bei denen die Speicherkapazität
auf die Maximalgröße von Programmen des besonderen Anwendungsgebietes (beispielsweise Fakturieraufgaben) der Anlage
zugeschnitten ist, ist es für den Programmierer normalerweise nicht möglich, das aufgestellte Programm zu testen. Tatsächlich
neigen die Hersteller derartiger Anlagen dazu, den Benutzer mit den notwendigen Programmen, die bereits perfektioniert bzw. von
Fehlern befreit sind, zu versorgen.
Diese Tendenz findet ihre Berechtigung in der Tatsache, daß die Vergrößerung des Speichers zum Zwecke der Aufnahme eines Fehlerbefreiungsprogrammes
die Kosten der Anlage negativ beeinflussen würde. Darüber hinaus würde der Benutzer eine Anlage erwerben,
deren Wirkungsgrad wegen der unbenutzten Speicherteile nur gering ist.
Der offensichtliche Nachteil, der sich hieraus aber für den
Benutzer ergibt, ist, daß der erworbenen Anlage vollständig die Flexibilität fehlt, was soweit geht, daß es dem Benutzer nicht
möglich ist, selbst die kleinsten Änderungen in den Programmen vorzunehmen, die mit der Anlage geliefert werden.
Diese fehlende Flexibilität der Leistungsfähigkeit der Anlage
macht den Benutzer bezüglich aller Leistungen, die mit der Veränderung von Programmen zusammenhängen, vollständig vom Hersteller
der Anlage abhängig.
Der Benutzer ist also gezwungen, den Hersteller zu bitten, die Programme zu modifizieren, womit normalerweise lange Wartezeiten
und hohe Kosten verbunden sind. Um diesen Nachteilen aus dem Wege zu gehen, ist der Benutzer geneigt, die Programme selbst
zu modifizieren und fremde Datenverarbeitungszentren zu bitten, die vorgenommenen Modifikationen von Fehlern zu befreien. Aber
509828/0783
auch in diesem Fall ist der Benutzer gezwungen, lange Wartezeiten
und zusätzliche Kosten in Kauf zu nehmen.
Es ist eine Kleindatenverarbeitungsanlage bekannt mit einer
Einrichtung zur Fehlerbefreiung von Rechenprogrammen (IBM System/3 Model 10 Disk Systems Operator's Guide, IBM
5^10 Processing Unit Controls and Indicators, Seiten 11 bis
13). Diese Anlage enthält ein Fehlerbeseitigungssteuerfeld,
das nicht durch den Operator sondern nur durch den Programmierer bedient werden kann. Dieses Steuerfeld enthält einen
Schalter, um die Arbeitsweise der Anlage vom Normalbetrieb
in den Betrieb zur Fehlerbeseitigung umzuschalten. Weiterhin ist eine Anzahl von Schaltern vorgesehen, die jeweils mit
einer bestimmten Fehlerbefreiungsoperation, wie beispielsweise Anzeige der Arbeitsspeicherregister, Einschreiben in
den Speicher, schrittweiser Lauf, etc. verbunden ist.
Zusätzlich zu diesem Steuerfeld ist ein weiteres Steuerfeld vorgesehen, um Daten und Adressen in den Speicher einzugeben,
wobei eine Anzeige eingeschlossen ist, die jeweils nur zwei 8-Bit Speicherbytes im Binärcode anzeigen kann.
Diese Einrichtung zur Fehlerbefreiung hat zwei grundsätzliche
Nachteile :
Es werden wesentliche Teile der Anlage nur im Fehlerbeseitigungsbetrieb
benutzt und nicht bei der normalen Arbeitsweise. Dadurch werden die Kosten der Fehlerbefreiungseinrichtung
so stark heraufgesetzt, daß sie verhältnismäßig kostspielig wird.
Der zweite Nachteil besteht darin, daß die Anzeige jeweils
nur zwei Bytes gleichzeitig wiedergibt, wodurph es für den Programmierer schwierig wird, den gesamten Inhalt eines
5098 28/0 78 3
2458657
Registers darzustellen, wodurch die Beseitigung von Fehlern in Rechenprogrammen unübersichtlich und langwierig
wird.
Der Erfindung liegt die Aufgabe zugrunde, eine Fehlerbefreiungseinrichtung
zu schaffen, die von den vorgenannten Nachteilen frei ist und auch bei kleineren Datenverarbeitungsanlagen
die Benutzung von kompletten Fehlerbefreiungsprogrammen, die einen gewissen Komfort bieten, gestaltet,
ohne daß damit eine wesentliche Kostenerhöhung verbunden wäre.
Diese Aufgabe wird durch die im Hauptanspruch angegebenen Merkmale gelöst.
Vorteilhaft bei der Erfindung ist, daß alle Operationen, die sich auf die Fehlerbefreiung beziehen, unter alleiniger
Benutzung der Tastatur, des Bedienungsfeldes und der Anzeige,
mit denen die Anlage üblicherweise ausgerüstet ist, ausgeführt werden können, ohne daß besondere Ausrüstungen zur
Fehlerbefreiung (wie bei großen Anlagen) notwendig wären.
Bei einer vorteilhaften Weiterbildung der Erfindung besteht
die Möglichkeit, einen Satz der wichtigsten Programme zur Fehlerbefreiung im Auslesespeicher (ROM) unterzubringen
sowie die Möglichkeit, auf einer Magnetkarte aufgezeichnete
Fehlerbefreiungsprogramme in eine bestimmte Zone des Arbeitsspeichers
(RAM) ohne Änderung der wesentlichen Parameter des zu testenden Programmes einzubringen. Der Programmierer
ist in der Lage, Fehlerbefreiungsprogramme, die für seine
Aufgabe besonders geeignet sind, mittels Aufzeichnung auf Magnetkarten selbst zu schreiben und zu benutzen.
509828/07 8 3
BAD ORIGINAL
BAD ORIGINAL
"5" 2458657
Die genannten und weitere vorteilhafte Merkmale der Erfindung sollen
im Folgenden anhand eines Ausführungsbeispiels der Erfindung, das in der Zeichnung dargestellt ist, näher erläutert werden. Es zeigen:
Figur 1a eine Blockdarstellung eines Ausführungsbeispiels einer das
erfindungsgemäße Fehlerbefreiungssystem für Programme enthaltenden Datenverarbeitungsanlage,
Figur 1b eine Außenansicht der Anlage in perspektivischer Darstellung,
Figur 2 eine Blockdarstellung der Zentraleinheit der Anlage, Fig. 2a bis c Details der Blockdarstellung nach Fig. 2,
Figur 3 die Taktsignale der Zentraleinheit,
Figur k ein Zustandsregister,
Figur 5 zeigt Takt signale des Zustandsregisters nach Fig. ^f,
Figur 6 die auf das Zustandsregister einwirkenden Signale während des Lesens einer Mikroanweisung,
Figur 7 ein Operationsregister,
Figur 8 eine Blockdarstellung des Operationsregisters nach Fig. 7i
Figur 9 eine Darstellung der reservierten Zone (ZRM)dee Arbeitsspeichers
Figur 9a ein Programmbedingungsbyte,
Figur 9b ein Codeunterbrechungsbyte,
Figur 9c ein Reservierungsunterbrechungsbyte, .
5 0 9 8 2 8/0783
Figur 9d ein Fehlerbefreiungs-Hilfsbyte,
Fig. 10a ein Flußdiagratnm des Übersetzer-Mikroprogramms,
bis c
Figur 10d die Formate der Anweisungen,
Fig. 11a zeigen die Flußdiagramme des Fehlerbefreiungsbis
g (DBG)-Programms,
Fig. 12a die Darstellung eines Beispiels einer optischen
bis f Anzeige einer Anweisung,
Figur 13 ein Flußdiagramm für ein Blockerkennungs-Mikroprogramm
und
Figur Ik ein schematisches Flußdiagramm der Arbeitsweise
des erfindungsgemäßen Fehlerbefreiungsprogramms,
InhaIts über sieht
1. Liste der verwendeten Kurzbezeichnungen
2. Allgemeine Beschreibung
3. Zentraleinheit (Fig. 2)
3.1 Zeitgeber 20
3.2 Ausführung der Mikroanweisungen
3.3 Zustandsregister (SO) 27
3.^ Anweisungsregister (RO) 26
3.^ Anweisungsregister (RO) 26
3.5 Operationsregister 30
3.6 Arithmetische Einheit 35
3.7 Schaltelemente (Register kO)
3.8 Verschiebeschaltung 41
3.9 Eingangsschaltung zu den Operationsregistern
3.10 Verbindungsschaltung für RAM 1
3.11 Kanallogik 45
509828/ 0 7 83
k. Detaillierte Beschreibung von RAM 1 und ROM
5. Anweisungsinterpretations-Mikroprogramm (Übersetzer)
6. Fehlerbefreiungsprogramme
6.1 Benutzte Anweisungen
6.2 Optische Anzeige der Anweisungen in den Registern und 363
6.3 Tastenerkennung
6Λ Programm zum Eingeben mit Magnetkarte (Block B2 von DBG)
(Taste S 2)
6.5 Lesen RAM 1-Block BO . (Taste SO)
6.6 Stop-Reservierungs-Block B1 (Taste Sl)
6.7 Einschreiben in RAM1-Block B6 (Taste S6)
6.8 Schrittweise Programmausführung
7. Abschließende Bemerkungen und Beispiele 1. Liste der verwendeten Kurzbezeichnungen
AB Ans teuerungs tasten
AJ Unterbrechungseinschaltung (Register
BSD Fehlerbefreiungs-Hilfsbit (Register 35I in Fig. 9)
C Befehl
CC Bedingungscode
CJ Unterbrechungscode
CP Programmbedingungen (Register 313)
CRT Zeichen (entsprechend 8 Speicherbits), Leerstelle
CU Zentraleinheit
D Datenkanal
DBG Fehlerbefreiung
DEV Ein Schaltelement des Registers kO, bestimmt durch 3 Bits
DJ Register 40, bestehend aus acht Schaltelementen
EXOR Exklusiv-Oder
II Adressen der Programmunterbrechung (Register 335 in
Fig. 9)
IND Adresse
509828/078
JP Programm-Adressierer 207
JPSR Unterbrechung Programm (Register 302 von RAM 1)
JR Wiedereingabe Adresse (Register 327 in Fig. 9)
JS Stop Adresse (Register 350 in Fig. 9)
JTR Referenztabellen-Adressierregister
M.C. Magnetkarte
MEM Speicher RAM 1
MJ Anweisungsmodifizierung
MLS Sequenzlogik-Matrix 28
OPSR Unterbrochenes Programm (Register 301 von RAM 1)
P1 Zeiger 1 (Register für Hinweissignal)
P2 Zeiger 2 (Register für Hinweissignal)
PI Unterbrechungs-Reservierungsbit (Register 31*0
PSR Fortgeschrittenes Programm (Register 300 von RAM 1)
PU Periphere Einheiten h
RAM Arbeitsspeicher
RB Basisregister 310
RC Bedienungsregister 359
RL Arbeitsregister (Register 352 in Fig. 9)
RO , Mikroanweisungsregister 26
ROM Auslesespeicher
SO Zustandsregister
ZRM Reservierte Zone von RAM 1
2. Allgemeine Beschreibung
Eine Datenverarbeitungsanlage mit dem erfindungsgemäßen
Fehlerbefreiungs—System soll zunächst mit Bezug auf
die Fig. 1a und b beschrieben werden. Das dargestellte Ausführungsbeispiel der Datenverarbeitungsanlage weist eine Mikroprogrammierur*g
auf, d.h. , zu jeder Anweisung des Programms gehört ein Mikroprogramm, das in einem festen Speicher festgehalten ist, so daß die
Ausführung einer Programmanweisung durch die aufeinanderfolgende Ausführung der Mikroanweisungen des entsprechenden Mikroprogramms
erfolgt.
509828/0 783
Die Anlage nach den Eig. 1a und b weist einen Arbeitsspeicher (RAM)
1 auf, der die Anweisungen und Daten des in Ausführung begriffenen
Programms aufnimmt, und einen Auslesespeicher (ROM) 2, der sowohl die Mikroprogramme, die die Programmanweisungen vervollständigen,
als auch die Programme, die durch das erfindungsgemäße Fehlerbefreiungssystem
benutzt werden, enthält, wie es im Folgenden näher beschrieben werden soll.
RAM 1 und ROM 2 stellen übliche Speicher dar und brauchen deshalb
nicht im einzelnen dargestellt werden. Es soll an dieser Stelle lediglich
erwähnt werden, daß jede Zelle der beiden Speicher eine Kapazität von jeweils 16 Bits aufweist.
RAM 1 und ROM 2 sind mit einer Zentraleinheit (CU) 3 verbunden,
welche ebenfalls weiter unten detailliert beschrieben werden wird und ihrerseits mit einer Anzahl von peripheren Einheiten (PU) h
verbunden ist.
Die peripheren Einheiten h können verschiedener Art sein, entsprechend
der besonderen Anwendung, für die die Anlage konzipiert ist.
Eier sollen nur diejenigen peripheren Einheiten beschrieben und dargestellt werden, die für das Fehlerbefreiungssystem entsprechend
der Erfindung benötigt werden. Im einzelnen bestehen die dargestellten peripheren Einheiten aus: einem alphanumerischen Tastenfeld
5» einer optischen Anzeige 6, einem Bedienungsfeld 7t einem
Drucker 8 und einer Schreib-ZLese-Einheit 9'» die für die Aufzeichnung
und Wiedergabe von Daten auf einer Magnetkarte 9 geeignet
ist. ,
Zunächst sollen einmal kurz mit Bezug auf die Fig. 1a und b die
Operationen, die ein Programmierer bei der Fehlerbefreiung eines Programr.es ausführen muß, das zuvor in RAM 1 eingespeichert worden
ist, dargestellt werden. Diese Funktionen werden selbstverständlich
weiter unten noch einmal ausführlich beschrieben werden.
-10 -
509828/0783
Es soll jetzt angenommen werden, daß das in RAM 1 festgehaltene Programm durch die Datenverarbeitungsanlage nicht
korrekt ausgeführt wird, da Fehler verschiedener Art vorhanden sind, die durch den Programmierer während der Aufstellung
verursacht sein mögen.
Der Programmierer entschließt sich jetzt eine Prüfung der
Anweisungen des Programms vorzunehmen, die die Anlage nicht ausführen kann, und nimmt an, daß eine von ihnen falsch ist.
Um diese Anweisung direkt in RAM 1 zu verbessern, greift der Programmierer zum Bedienungsfeld 7 und bringt den Umschalter
100, der in Form eines Schlüsselschalters - mit zur Sicherheit gegen eine unbefugte Programmänderung mit einem abziehbaren
Schlüssel - ausgebildet sein kann (Fig. 1b) von seiner normalen Stellung in die Stellung "Fehlerbefreiung", schreibt
die entsprechende Adresse der Anweisung im numerischen Teil 101 des Tastenfeldes 5 und betätigt dann eine Hilfs-taste S1,
die zu einer Tastengruppe 102 gehört.
Der Umschalter 100, der dazu dient, die Fehlerbefreiungsprogramme zu aktivieren, kann durch einen Druckschalter ersetzt
werden, der den Umschaltkontakt steuert. Wesentlich ist nur, daß der logische Zustand des auf der Leiter 61 in Fig. 2c
vorhandenen Signals auf irgend eine Weise verändert wird.
Die Funktionen, die den Tasten SO bis S6 während der Ausführung von DBG-Progratnmen, die in ROM 2 vorhanden sind,
zugeordnet sind, können auch von anderen alphabetischen Tasten oder Drucktasten zwischen G und Z wahrgenommen werden, unter
der Annahme, daß die Tasten A bis F für den Hexadezimalcode, zur Modifizierung der Anweisungen benutzt werden. Auch zusätzliche
hinzugefügte Drucktasten zum Abruf der in ROM 2 befindlichen DBG-Programme, Umschalter oder verriegelbare
Tasten gehören zu den Varianten, die bei dem in vorangehenden beschriebenen Fehlerbefreiungssystem möglich sind.
- 11 -
509828/07 83
2458.65
Mit dieser Operation wird eine Unterbrechung in dem zu korrigierenden Programm eingeleitet, die durch den
Schalter 100, der im Bedienungsfeld 7 betätigt wurde, hervorgerufen wird und eines der Fehlerbefreiungsprogramme,
das in ROM 2 festgehalten ist, wird durchgeführt. Dieses Programm ist von der im Tastenfeld 5
betätigten Taste abhängig. Es kann beispielsweise zur Folge haben, daß die Anweisung, welche der im Tastenfeld
geschriebenen Adresse entspricht, optisch angezeigt wird und weiterhin ein Einhalten der Verarbeitung mit Aktivierung
des Tastenfeldes 5 bewirken. Auf diese Weise kann der Programmierer über das Tastenfeld 5 diejenige Anweisung
eingeben, die er für richtig hält. Danach betätigt die Bedienungsperson eine weitere Hilfetaste S6, die mit einem
weiteren Fehlerbefreiungsprogramm verbunden ist, welches die richtige Anweisung im Speicher RAM 1 bei der vorher
eingegebenen Adresse einspeichert.
Wenn der Programmierer ein Fehlerbefreiungsprogramm
durchzuführen wünscht, das von denen, die in ROM 2 eingespeichert sind, abweicht, gibt er in die Schreib-/Lese-Einheit
9' die Magnetkarte 9 t auf der
- 12 -
509828/0783
- 1 2A5 8651
ein Fehlerbefreiungsprogramm aufgezeichnet ist, ein und betätigt die Hilfstaste S2. Diese Taste ruft ein besonderes Programm aus
SOK 2 ab, welches die folgenden Schritte bewirkt: Lesen des auf der Karte 9 aufgezeichneten Programmes, dessen überführung in eine
reservierte Zone (ZRM) von RAM 1 und die unverzügliche Ausführung dieses Programms.
Es soll darauf hingewiesen - und weiter unten noch im einzelnen beschrieben-werden , daß die reservierte Zone von RAM 1,
in welche das Kartenprogramm überführt wird, keine Information enthält, die für die Wiederaufnahme des zu testenden Programms
wesentlich ist, so daß keine Information verloren geht, wenn das Fehlerbefreiungsprogramm, das auf der Magnetkarte 9 aufgezeichnet
ist, ausgeführt wird. Aus dem Gesagten geht ein Vorteil des erfindungsgeciäßen
Systems bereits hervor, nämlich die Möglichkeit des Programmtestens durch einfaches Betätigen eines Umschalters, wobei
die selben Elemente (Tastenfeld, Anzeige, Magnetkarte) benutzt werden, wie bei der normalen Arbeitsweise.
3. Zentraleinheit (Fig. 2)
Die Zentraleinheit J5 soll jetzt anhand von Fig. 2 im einzelnen beschrieben
werden. Die Zentraleinheit 3 ißt eine Zusammenstellung von logischen Schaltungen, welche die verschiedenen Mikroprogramme,
die in BOM 2 enthalten sind, steuern und ausführen.
Sie besteht aus vier Hauptteilen:
Ein Zeitgeber 20, welcher die Verarbeitung von Daten innerhalb der
Zentraleinheit 3 steuert. Dieser Zeitgeber besteht aus einem Oszillator
21 und einer Anzahl von Signalerzeugerschaltungen 22.
Eine sequentielle logische Matrixschaltung 251 welche eine Serien-Parallel-Umwandlung
durchführt und die Codes der Mikroanweisungen,
509 8 28/0783
die aus ROM 2 ausgelesen werden, übersetzt sowie die zur Ausführung
derselben notwendigen Befehle erzeugt. Diese Schaltung besteht aus einem Mikroanweisungsregister (EO) 26, einem Zustandsregister
(SO) 27 und einer Sequenzlogik-Matrix (MLS) 28.
Eine Operationsschaltung führt die Verarbeitung der Daten in der Art und Weise durch, die durch die Sequenzlogik-Matrix 28 vorgegeben
ist. Die Operationsschaltung enthält: die Operationsregister 30, welche in zwei Gruppen (KA, HB) 31, 32 unterteilt sind, von
denen jede aus 16 Acht-Bit-Registern besteht, die von jetzt ab mit AO bis A15 und BO bis B15 bezeichnet werden sollen; eine arithmetische
Einheit 35, welche aus drei Blöcken (UA, FB und UC) 36 bis
38 mit einer Parallelität von 8 Bits gebildet wird; das Register (DI) kO, bestehend aus Schaltelementen, die Verschiebeschaltung (ND)
4i, eine Eingangsschaltung für die Operationsregister, welche die
Verbindungen NA und NB und zwei Register (BA und BB) kz und k3 und
eine Schaltung zur Verbindung mit RAM 1,bestehend aus Verbindungen
NO und NC,enthält, sowie eine Kanallogik k5, welche die Verbindung
zwischen den peripheren Einheiten steuert und die simultane Operation der Zentraleinheit 3 überwacht.
Es folgt jetzt eine detaillierte Beschreibung der oben-genannten
Blöcke.
3.1 Zeitgeber 20
Der Oszillator 21 erzeugt periodische Impulse, welche feste Perioden
definieren, Maschinenzyklen genannt, die jeweils für einen Zeitraum andauern, der für die Ausführung einer Elementaroperation notwendig
ist (beispielsweise Auslesen aus einem Operationsregister 30, Heraufsetzen
und Wiedereinschreiben in das Operationsregister 30)·
Während des Maschinenzyklus werden Signale durch die Schaltung 20 erzeugt,
deren Dauer und Position innerhalb des Maschinenzyklus festliegt.
509828/07 8 3
Die Funktion dieser Signale wird dadurch festgelegt, daß sie auf die Schaltungen der Zentraleinheit 3 einwirken oder
nicht einwirken, je nachtien Bedingungen, die durch die Sequenzlogik-Matrix
28 in einer im Folgenden zu beschreibenden Weise gegeben
Die Arbeit der Zentraleinheit 3 und der Informationsaustausch mit den peripheren Einheiten erfolgt vollkommen synchron mit diesen
Taktsignalen.
Zehn Signale werden durch die Schaltung 22 erzeugt und ihre Benutzung
soll hier behandelt werden. Die Signale sindi
TO steuert das Zustandsregister 27, T1 taktet das Auslesen von ROM 2,
T2 taktet RAM 1,
T3A und T3N steuern das Register (RO) 26, T^A und TifN steuern die Register (BA und BB) *f2 und k"} und
das Register 40,
T5 die Register 31 und '32 sowie
T6 und T7 die Kanallogik V?. >
T6 und T7 die Kanallogik V?. >
Fig. 3 stellt ein Zeitdiagramm dar, in dem die genannten Signale erscheinen.
Der Oszillator 21 und die Schaltungen 22 werden nicht im einzelnen
beschrieben, da sie der allgemein üblichen Bauart entsprechen.
3.2 Ausführung der Mikroanweisungen
Vor der Beschreibung der übrigen Blöcke der Zentraleinheit 3» sollen
die Mikroanweisungen, die durch die Zentraleinheit 3 für das erfindungsgeniäße
Fehlerbefreiungssystem benutzt werden und ihre Ausführung kurz besprochen werden.
509828/0783
Die Ausführung einer Mikroanweisung kann in zwei Phasen zerlegt werden: eine ausführende Phase, die für alle Mikroanweisungen
gleich ist und die adressierten Mikroanweisungen aus EOM 2 ausliest,
die Ausführung derselben vorbereitet und den Adressierer von ROM 2 heraufsetzt. Diese Phase ist offensichtlich unabhängig von
der gelesenen Mikroanweisung. In einer Ausführungsphase wird die Verarbeitung der Daten in Übereinstimmung mit der durch die in der
vorangehenden Interpretationsphase ausgelesenen MikroanweiBung angegebenen
Art und Weise vorgenommen. Die Interpretationsphase wird stets in einem einzigen Maschinenzyklus ausgeführt und die Konfiguration
der Signale (von jetzt ab ."Befehle" genannt) liegt innerhalb
der Grenzen des Zyklus fest. Die Konfiguration dieser Befehle definiert die auszuführenden Operationen und soll "Interpretationszustand"
genannt werden. Das Vorliegen des Interpretationszustandes wird durch ein Flip-Flop SOOO des Zustandsregisters 27 (Fig. k)
angegeben,-
Die Ausführungsphase wird in einem oder mehreren Maschinenzyklen durchgeführt, denen eine entsprechende Anzahl von Stadien' entspricht,
die jeweils durch ein entsprechendes Flip-Flop des Registers 27 bestimmt wird. ·
Während der Ausführungsphase verbleibt der Code der betreffenden Mikroanweisung fest im Register 26, wohingegen der Zustand der
Flip-Flöpe des Registers 27 den aktuellen Zustand definiert,-
Jeder Zustand bestimmt den nächsten in Abhängigkeit von dem Code
der gelesenen Mikroanweisung. Am Ende der Ausführung einer jeden
Mikroanweisung wird in den Interpretationszustand SOOO zurückgeschaltet
um die nachfolgende Mikroanweisung aus EOM 2 auszulesen.
Während der zwei Phasen - der Interpretationsphase und der Ausführungsphase
- erzeugt die Sequenzlogik-Matrix (MLS), an deren Eingang sich die Register 26 und 27 befinden, Befehle C, die den In-
509828/0 78 3 " 1.6 "
formationsfluß durch die Operationsschaltung oder andere
Blöcke der Zentraleinheit 3 steuern.
Die Information gelangt dann zwischen den Blöcken der Zentraleinheit
3 über eine Anzahl von Und-Toren verschiedenen Typs, die durch von der Sequenzlogik-Matrix 28 erzeugte Befehle C
gesteuert werden. In Fig. 2 werden diese Tore symbolisch in drei Zonen unterteilt dargestellt. Die mittlere Zone enthält
das Steuersignal des Tors, das durch die Schaltung (MLS)28 erzeugt wurde. Wenn dieser Befehl anliegt, werden die Signale
am Eingang des Tors in den folgenden Block übertragen, Die Xummernpaare, variierend von 00 bis 15 im oberen und im unteren
Bereich der die Tore darstellenden Blöcke geben die Nummer des
Bits an, das sie steuern, - genauer gesagt geben sie die zeitlichen Positionen dieser Bits jeweils am Ein- und am Ausgang
des Tors an. Ein Tor, beispielsweise, das die Zahlen 07, 00 sowohl in der Eingangs- als auch in der Ausgangszone aufweist,
überträgt 8 Bits parallel ohne Verzögerung. Auf der anderen Seite stellt ein Tor mit dem Zahlenpaar 03, 00 in der oberen
Zone - d.h. am Eingang - und dem Zahlenpaar 07, O^ in der
unteren Zone - d.h. am Ausgang - ein Tor dar, welches vier Bits überträgt, wobei diese um h Positionen nach links verschoben
werden, Venn 07, 04 am Eingang und 03, 00 am Ausgang
steht, so erfolgt das Verschieben um vier Positionen nach rechts. Wenn schließlich das dem Eingang zugeordnete Feld leer
ist, so gibt dies an, daß die Bits von außen her in das Tor gelangen.
An dieser Stelle soll der Satz von Mikroanweisungen, der für das erfindungsgemäße Fehlerbefreiungssystem benutzt wird, beschrieben
werden, wobei die anderen Mikroanweisungen, die durch
die Zentraleinheit ausgeführt werden können, weggelassen werden. Die Mikroanweisungen haben jeweils ein bestimmtes
Format von 16 Bits, was einem Wort von ROM 2 entspricht. Das Format der Mikroanweisungen stellt sich folgendermaßen dar:
15 11 07 03 00
509828/078 3
BAD ORIGINAL
BAD ORIGINAL
Die Felder, jedes mit vier Bits, haben die folgenden Bedeutungen;
F ist der Operationscode der Mikroanweisung,
X gibt den ersten Operanden an,
Y gibt den zweiten Operanden an und
Z ist eine Erweiterung für eines der vorangehenden Felder.
Wenn die Felder X und Y als Operanden die Register A, B oder L der
Operationsregister 30 angeben, so soll das bei den Mikroanweisungen
durch die Symbole Ax, Bx, Lx, Ay, By bzw. Ly gekennzeichnet werden,
Die Mikroanweisungen werden in zwei Gruppen eingeteilt, die sich durch den unterschiedlichen Funktionscode unterscheiden, d.h. durch
die unterschiedliche Binär-Konfiguration des Feldes F der Mikroanweisung.
Die Mikroanweisungen mit demselben Funktionscode werden in derselben
Zustandsfolge ausgeführt.
3.3 Register (SO)27
Das Register 27 wird durch acht Flip-Flops (Fig. k) gebildet, welche
die verschiedenen Maschinenzyklen unterscheiden. Es sind S000-S001-
Ihr Setzen wird gesteuert durch die Sequenz-Logik-Matrix 28 über die
direkte Untersuchung des Feldes F der Mikroanweisung, welche im Register (RO) 2o vorliegt. Der Wechsel des Zustandes des Registers 27
findet mit der Vorderflanke des Signals TO statt, wobei dieses die
erste Operation ist, die die Matrix 28 innerhalb der Grenzen eines
Taktzyklus bewirkt.
5098 28/07 8 3 BAD ORIGINAL
Cie Signale S0k2, S043, S010 werden aus der Oder-Funktion bei den
folgenden Zuständen erhalten:
SO if 2 = SOOJf + S002
SOkJ, = SOO^ + SOO3
SO10 = SOOO + S001
SOkJ, = SOO^ + SOO3
SO10 = SOOO + S001
Fig. 5 stellt ein Zeitdiagramra dar, das sich auf den Zustand S010
bezieht, beginnend mit den Zuständen SOOO und S001. Die Zustände S0*f2 und S04j werden auf ähnliche Weise erzeugt. Es soll deshalb
festgestellt werden, daß die Matrix 28 nur fünf Zustände erzeugt, nämlich SOOO bis SOOk, während die anderen drei Zustände davon abgeleitet
werden.
Es soll schließlich festgestellt werden, daß allen Folgen ein Interpretationszustand
SOOO vorangeht. Die Befehle, die durch die Matrix 28 in den jeweiligen Zuständen erzeugt werden, sollen im Verlauf
der Beschreibung erläutert werden.
3-k
Anweisungsregister (RO) 26
Das Register 26 enthält 16 Flip-Flops, welche eine Serien-Parallel-Ur.wandlur.g
des Codes der Mikroanweisung derjenigen Information vornehmen, die aus ROM bei der Adresse, die durch das Operationsregister
30 vorher bestimmt wurde, ausgelesen worden ist.
Die sechzehn Flip-Flops teilen sich in zwei Gruppen zu acht auf. Die
an; wenigstens bedeutsamen Bits werden durch das Signal TJN gesteuert,
die anderen durch das Signal T3A.
-19 -
509828/0 7 83 BAD ORIGINAL
Die Erzeugung der Signale T3N und T3A erfolgt nur in den
beiden Zuständen, in denen aus ROM ausgelesen wird, das ist der Interpretationszustand SOOO aller Mikroanweisungen und
der Zustand S001 der Mikroanweisung ROMA.
Durch die Anstiegsflanke der Signale T3N und T3A werden die
sechzehn Bits, die aus ROM 2 ausgelesen wurden, durch das Register (RO) 26 einer Serienparallelumwandlung unterzogen
und legen den Code der auszuführenden Mikroanweisung fest.
Die Information verbleibt während des folgenden Ausführungszustandes
unverändert im Register, wie es in Fig. 6 dargestellt ist.
Vie bereits erwähnt, findet im Zustand SOOl der Mikroanweisung
ROMA ein zweiter Lesevorgang von ROM statt. Die acht Flip-Flops die den am wenigsten bedeutsamen Bits des
Registers 26 entsprechen, werden durch das Signal T3N durch
die acht bedeutsamsten oder am wenigsten bedeutsamen ausgelesenen Bits gesetzt. Das hängt ab vom Wert des Bits 07
des Registers B2.
3.5 Die Operationsregister 30
Die Operationsregister 30 sind in zwei Serien angeordnet, die
mit A und B bezeichnet werden und aus jeweils sechzehn
Registern bestehen, die jeweils eine Kapazität von acht Bits haben (Fig. 8).Die Bits der Register jeder der beiden Serien
mit demselben Gewicht - beispielsweise der Serie A - sind in einer h χ h Matrix (Fig. 7) angeordnet, so daß sich acht
k χ k Matrizen ergeben, in denen die ersten Bits jeweils das
Register AO bilden, die zweiten Bits das Register A1 usw.
Zur Auswahl eines Registers - beispielsweise des Registers Al 5 - ist es ausreichend, auf eine der acht Auswahlleitungen,
die in Fig. 7 dargestellt sind, acht Befehle C02** bis C031
zu senden, die die Form 10000001 haben.
50
Die Befehle 002^ bis CO31 werden selbstverständlich durch die
Sequenzlogik-Matrix 28 erzeugt, welche für die Felder X und Y
der Mikroanweisungen sowohl die Auswahlbefehle (C02^ bis CO31)
als auch die dazugehörigen Zustände (eingegeben in SO) mittels einer der beiden Registersätze erzeugt. Im einzelnen wählt der
Zustand SO^fJ eines der Register der Serie B aus, während der Zustand
S0^2 ein Register der Serie A auswählt. Der Zustand SOIO
bezieht sich dagegen auf ein Register mit der Länge von sechzehn Bits, das ähnlich wie die A-und B~Register aufgebaut ist und als
•'Langregister" - gekennzeichnet durch den Buchstaben L - bezeichnet
werden soll. Das Einschreiben eines Teils der Information, die in dem Register 30 vorhanden ist, in das Register hZ und kj>
wird, wie bereits erwähnt, durch das Signal T5 (Fig. 2) getaktet.
Jetzt wählen die durch die Matrix 28 erzeugten Befehle
CTO^ bis CT07 die in die Register 31 und 32 mit einer Gleichzeitigkeit
von vier Bits zu übertragenden Daten aus, so daß es möglich ist, eines der Register A oder B oder eines Teils derselbe^
zu verändern, wobei der Rest unverändert bleibt.
Ji.
6 Arithmetische Einheit 35
Die arithmetische Einheit 35 führt arithmetische und logische Operationen
bezüglich des Inhalts der Operationsregister 30 aus. Sie
besteht aus den beiden Addierer darstellenden Blöcken (UA und UB) 36 und 37 mit einer Parallelität von acht Bits und einem eine logische
Schaltung darstellenden Block (UC) 38· Die beiden Addierer
(UA und UB) J>6 und 37 sind derart verbunden, daß sie zusammen einen
Sechzehn-Bit-Addierer bilden. Es sind jedoch nur bei bestimmten Operationen, d.h. wenn ein Langregister (L) betroffen ist, alle
sechzehn Ausgänge des Addierers significant.
Die Schaltung (UC) 38, in das das Ergebnis von UA als erster Operator
eingegeben werden kann, führt die logischen Oder-, Und- und Exclusiv-Oder-Funktxonen aus.
- 21 -
509828/0783
Mittels des Dekoders 30 (Fig. 2b) liefert die arithmetische Einheit
35 darüberhinaus Information über das Ergebnis der arithmetischen und logischen Operationen, die im Flip-Flop D02 auf die
von der logischen Matrix (MLS) 28 erzeugten Befehle CD11 und CD12
hin gespeichert sind. Der Zustand des Flip-Flops wird mittels der Befehle SADO und SADI abgefragt, um bedingte Sprünge zu bewirken.
3.7. Schaltelemente (Register *fO)
Die das Register *fO bildenden Schaltelemente bestehen aus ahht
Flip-Flops (DOO bis D07) welche eine Serienparallelumwandlung für Ereignisse durchführen, die während der Ausführung einiger Mikro-,
anweisungen auftreten. Ihr Inhalt wird während der Ausführung derjenigen
Mikroprogramme, die Adressen-Sprunganweisungen in die Adressierer von ROM 2 bedingen, abgefragt. Sie werden automatisch
durch logische Mikroanweisungen (Und, Oder usw.) bewirkt, um das Ergebnis der ausgeführten logischen Operationen zu speichern.
Jedes einzelne Schaltelement (Flip-Flop) kann darüberhinaus durch eine Mikroanweisung REDI bzw. SEDI auf Null oder Eins (Tabelle A)
gesetzt werden.
Im Format der Mikroanweisung (Tabelle A) bilden die drei am wenigsten
bedeutsamen Bits des Feldes X die binäre Adresse (00 bis 0?) des betreffenden Schaltelementes.
50 9 828/0783
Einige Mikroanweisungen (TADI-TBDI-SADl) überführen die
acht Bits des ausgewählten Registers A oder B in die acht
Flip-Flops (siehe Tabelle A). Einige arithmetische oder
logische Mikroanweisungen (Und, Oder, ORE, ADD) setzen
jedoch die FlipTFlops mit ihrem qualitativen Ergebnis, d.h. im einzelnen, daß das Schaltelement DOI das Auftreten eines Null-Ergebnisses von der arithmetischen Einheit 35 festhält,
acht Bits des ausgewählten Registers A oder B in die acht
Flip-Flops (siehe Tabelle A). Einige arithmetische oder
logische Mikroanweisungen (Und, Oder, ORE, ADD) setzen
jedoch die FlipTFlops mit ihrem qualitativen Ergebnis, d.h. im einzelnen, daß das Schaltelement DOI das Auftreten eines Null-Ergebnisses von der arithmetischen Einheit 35 festhält,
Die Schaltelemente des Registers kO ändern ihren Zustand zu
zwei verschiedenen Zeiten. Die Schaltelemente (Flip-Flops)
DOO bis D03 kippen mit dem Signal T4N, während die Schaltelemente (Flip-Flops) OOk bis D07 mit dem Signal T^A kippen,
DOO bis D03 kippen mit dem Signal T4N, während die Schaltelemente (Flip-Flops) OOk bis D07 mit dem Signal T^A kippen,
3.8 Verschiebeschaltung kl
Durch diese Schaltung, die aus Schaltungen vom Und-Oder-Typ
besteht, ist es möglich, einen Informationsfluß unter allen
möglichen Verbindungen (NA, NB) der Eingangsschaltung zu den Operationsregistern (Gruppen 31 , 32) zu ermöglichen. Die
Verschiebeschaltung 41 wird aus einer Gruppe von acht Toren gebildet, die in zwei.Untergruppen, die mit den Operationsregistern (RA und RB) 31 und 32 verbunden sind, unterteilt
ist. Jede dieser beiden Untergruppen kann ein Verschieben
oder einen Umlauf von Daten, die aus dem Operationsregister 30 kommen, bewirken, wie es symbolisch in Fig„ 2b dargestellt ist. Jedes Tor der beiden Untergruppen wird durch eine Kombination von drei Bits der Mikroanweisungen SHSB, und
ROTB angesteuert, die auf
Verschiebeschaltung 41 wird aus einer Gruppe von acht Toren gebildet, die in zwei.Untergruppen, die mit den Operationsregistern (RA und RB) 31 und 32 verbunden sind, unterteilt
ist. Jede dieser beiden Untergruppen kann ein Verschieben
oder einen Umlauf von Daten, die aus dem Operationsregister 30 kommen, bewirken, wie es symbolisch in Fig„ 2b dargestellt ist. Jedes Tor der beiden Untergruppen wird durch eine Kombination von drei Bits der Mikroanweisungen SHSB, und
ROTB angesteuert, die auf
- 23 -
50982 87 0783
diese Schaltung einwirken. Die Kombinationen sind in Pig. 2b symbolisch durch die Bezeichnungen GZOO bis GZ07 angegeben,
während die anderen beiden Tore der Schaltung 41 direkt angesteuert werden und dazu dienen, die Bedingungen
oder Null in die Schaltelemente einzugeben. Ein weiterer Eingang zur "Verschiebeschaltung 41 ist durch ein Tor 70 gegeben,
welches mit der Kanallogik 45 mittels des Datenkanals D verbunden ist. Dieses Tor 70 gestattet die Einführung von
Daten, die aus peripheren Einheiten mittels der Kanallogik 45 über die Verbindungen NA oder NB in die Operationsregister
30 gelangen.
3.9« Eingangsschaltung zu den Operationsregistern
Dies ist eine Schaltung, die mit den Operationsregistern 31 und
32 verbunden ist. Sie bewirkt, daß das Byte, welches zu den Operationsregistern 31 und 32 geführt und in diese eingeschrieben
werden soll, ausgewählt wird.
Dieses Netzwerk wird durch die Verbindungen NA und NB und die
Register (BA und BB) 42 und 43 gebildet. Die Verbindungen NA
und NB sind zwei Schaltungen, die - jede mit einer Parallelität von 8 Bits - die acht möglichen Informationswege zu den
Operationsregistern 31 und 32 mittels der Befehle CAOO bis
CA07, die durch MLS 28 erzeugt werden, auswählen.
Die ausgewählte Information kann aus den folgenden Einheiten stammen:
arithmetische Einheit 35 (zwei Wege),
Verschiebeschaltung (ND) 41,
ROM.2, '
RAM 1,
Bedienungsfeld 7 (zwei Wege) und
Kanallogik;45.
Die Register (BA und BB) 42 und 43 halten die Information fest,
509828/0783
- 2k -
die an den Verbindungen NA und NB, ausgewählt durch einen der Befehle CAOO bis CA07 in Gegenwart des Signals TU, vorliegt.
Der Inhalt von BA und BB 42 und 43 kann - je nachdem
ob die zuvor beschriebenen Befehle CT04 bis CT07 aktiviert sind - in die Operationsregister 31 unc* 32 eingeschrieben
werden.
3.10 Verbindungsschaltung für RAM 1
Die Zentraleinheit 3 ist mit dem Eingang des Speichers RAM
über die Verbindung NO mit einer Parallelität von 16 Bits (Νόθο bis 015) verbunden. Diese Verbindung wird während der
Ausführung der Mikroanweisungen zum Einschreiben in den oder
zum Auslesen aus dem Speicher aktiviert.
In beiden Fällen liefert die Verbindung NO die Adresse, zu der ein Zugriff gewünscht wird, und nur beim Einschreiben von
Mikroanweisungen liefert sie die Zeichen (8 Bits), die gespeichert werden sollen.
Der Ausgang von RAM 1 wird durch die Verbindung NC mit einer Parallelität von 8 Bits (NCOO bis 07) gebildet und nur
im Falle des Auslesens benötigt.
Alle diejenigen Mikroanweisungen, welche ein Auslesen aus oder ein Einschreiben in RAM 1 bewirken, werden innerhalb
von 3 Maschinenzyklen ausgeführt! im ersten Zyklus SOOO findet die Interpretationsphase statt, im zweiten Zyklus
S004 wird die Adresse in RAM 1, bei welcher die Mikroanweisung
wirksam ist, auf die Verbindung NO gegeben.
Die Register, die nicht mit der Verbindung NO als Adressieier
verbunden werden können, sind das Register (RO) 26- wenn Zugriff zu einer Adresse unter 225 (d.h. in der reservierten
Zone
509828/0783 - 25 -
von SAM 1) gewünscht wird oder das Registerpaar (AB oder
BA) wenn Zugriff zu irgendeiner Adresse von RAM 1 gewünscht wird. In Fig. 2 werden die Adressierbefehle des Speichers
RAM 1 durch die Befehle CMO3 bis CMO7 dargestellt. Der Befehl
CMO3 steuert das Register RO an, während die Befehle
CM04 und CM05 die Register (RA und RB) 31 und 32 ansteuern.
Aus dem Zustand S004 geht die Anlage über in den Zustand
S002 oder S003, entsprechend dem Typ der auszuführenden Mikroanweisung.
Die Anlage geht in den Zustand S002 bei all denjenigen Mikroanweisungen,
denen ein Register B die einzuschreibenden Daten liefert oder die ausgelesene Information erhält.
Sie geht jedoch in den Zustand S003 über, wenn ein Register
A beim Einschreiben oder Auslesen betroffen ist.
Innerhalb der Grenzen der Zustände S002 und S003 ist es notwendig,
zwei verschiedene Punktionen zu unterscheiden:
1. In der Schreib-Mikroanweisung wird mittels der ersten acht
Bits (NOOO bis 007) der Verbindung NO derjenige Datenteil - begleitet von dem Signal T2 - übersandt, der in
den Speicher (bei der Adresse, die bereits im Zustand S004- angegeben worden ist) einbeschrieben werden soll.
Der Ausgang ITG des Speichers ist nicht signifikant und
unbenutzt.
Die einzuschreibende Information kann aus den Registern
(RA und RB) 31 und 32 oder von peripheren Einheiten mittels
der Kanallogik 4-5 übertragen werden, wenn die Befehle
CM04, GM06 bzw. GMO? von MLS 28 erzeugt werden.
2. Beim Lesen von Mikroanweisungen ist auf der anderen Seite die Verbindung NO nicht wesentlich und wird durch RAM
nicht benutzt. Statt dessen ist der Ausgang NC wesent-
5 0 9828/0783
- 2.6 -
2458657
lieh und kann zu einem B Register übertragen werden» wenn
der Zustand S002 und der Befehl CA05 vorliegen oder aber an ein A Register, wenn der Zustand S003 und der Befehl
CAO5 vorhanden sind.
Die Blöcke der Zentraleinheit 3 und die durch MLS 28 erzeugten Befehle zur Steuerung des Informationsflusses zwischen
den einzelnen Blöcken sind in der vorhergehenden Darstellung beschrieben worden. Die Matrix (MLS) 28 ist nicht eingehend
behandelt worden, da es sich hierbei lediglich um eine Matrix handelt, in der die Zeilen dur-h die Ausgänge der Register
26 und 27 und die Spalten durch die Leiter, auf denen die Befehle C erzeugt werden, gebildetwerden.Bedingungen für die
Matrix (MLS) 28 werden darüber hinaus durch den Zeitgeber 20 in Form von Befehlen geeigneter Folge erzeugt.
Bezüglich weiterer Einzelheiten betreffend MLS 28 soll auf
das Buch "Microprogramming, Principles and Practices", von Sarair S. Husson, erschienen 1970 bei Prentice-Hall Inc.,
Snglevood Cliff, N.J., United States of America verwiesen werden. Im Kapitel 2 ist das Prinzip dargestellt und an einer
Reihe von konkreten Beispielen erläutert, nacbjdem eine Folge
von Befehlen, die zur Ausführung von Mikroanweisungen geeignet
ist , erzeugt werden kann.
Die Kanallogik 45 ist ein Komplex von Schaltungen, die geeignet
ist, den Austausch von Daten und Befehlen zwischen
509828/0783 - 27 -
der Zentraleinheit 3 und den'damit verbundenen peripheren
Einheiten k zu handhaben und zu koordinieren. Ausgeschlossen
davon ist das Steuerpult 7» welches direkten Zugriff zur Zentraleinheit 3 über die Verbindungen NA und NB hat.
Eine detaillierte Beschreibung der Kanallogik h$ findet sich
in der DT-OS 2 059
An dieser Stelle ist es lediglich notwendig, darauf hinzuweisen, daß die Kanallogik k% die Mikroanweisungen mit verschiedenen
Prioritäten, die im Prozessor vorhanden sind, auf der Grundlage der feststehenden Prioritätsordnung verarbeitet.
Der Grund für den Einsatz der Kanallogik 45 besteht in dex
Notwendigkeit, eine Möglichkeit zu haben, ein fortgeschrittenes
Mikroprogramm zu unterbrechen, um ein Unterbrechungs-Mikroprogramm
mit größerer Priorität ausführen zu können.
Beim vorliegenden Ausführungsbeispiel gibt es die folgenden
vier Prioritätsstufen:
Das Hauptmikroprogramm "oder Mikroprogramm der Priorität ht
das normalerweise die Funktion des Übersetzens und Ausführens von Anweisungen des Programms durch Verarbeitung von Daten
und Start der Eingangs- und Ausgangsoperationen hat,.
ein Mikroprogramm der Priorität 3» das normalerweise zur Ausführung
von Operationen bestimmt ist, die nicht innerhalb der vorgegebenen Zeitfolge des Programms vorkommen, (beispielsweise
Vorbereitungen von Unterbrechungen des Programms, mikroprogrammierte
Steuerung von Eingangs-Ausgangs-Operationen) und
Mikroprogramme der Prioritäten 2 und 1, die normalerweise dazu
dienen, Daten aus einer peripheren Einheit in den Speicher und umgekehrt zu übertragen.
- 28 -
509828/0783
Zu jedem Mikroprogramm gehört ein Adressierregister, wie es in Fig. 8 dargestellt ist. Im einzelnen wird die Prioritätsstufe 4 durch das Register LOO adressiert, die Stufe 3 durch
das Register L01, die Stufe 2 durch das Register Δ13 und die
Stufe 1 durch das Register A12.
Die Übertragung von Daten aus den peripheren Einheiten zu der Zentraleinheit 3 findet auf zwei verschiedene Weisen
statt. Die erste wird gesteuert durch das Tor 39» welches einen direkten Zugriff zu RAM 1 über die Verbindung NO (Fig»
2c) gestattet. Dieses Tor wird durch Mikroanweisungen für direkten Zugriff zu RAM 1 gesteuert, die bereits weiter oben
beschrieben worden sind. Die zweite Art wird durch das Tor 70 der Verschiebeschaltung 4-1 gesteuert und gestattet den
Zugriff zu den Operationsregistern 30 und 31 über die Verbindungen
NA und NB. Die Daten und Befehle aus den peripheren Einheiten, die in die Operationsregister 30 und 31 eingeschrieben
sind, werden direkt durch den Satz von Mikroanweisungen, der auf die Register einwirkt, verarbeitet.
4·. Ausführliche Beschreibung von RAM 1 und ROM 2
Sine Beschreibung desjenigen Teiles von RAM 1, der für die
DBG-Programme benutzt wird, soll jetzt anhand von Fig. 9 gegeben werden. Die erste Zone, die reservierte Zone (ZRM) genannt
wird, steht dem Übersetzer-Mikroprogramm und denjenigen Mikroprogrammen, die die peripheren Einheiten steuern,
sowie den D3G-Programmen zur Verfügung.
Die zweite Zone steht dagegen der Aufzeichnung von auszuführenden Programmen, den Daten, die diese Programme behandeln
und den Ergebnissen der Verarbeitungsoperationen offen.
509828/0783 -29-
Bevor RAM 1 im einzelnen beschrieben wird, ist es notwendig, kurz die Operationen, die von einem in ROM 2 - "Übersetzer"
genannten - Mikroprogramm ausgeführt werden zu beschreiben. Dieses Mikroprogramm, das im einzelnen weiter unten beschrieben
werden wird,führt die nachfolgenden Operationen aus:
übersetzung der vorliegenden Anweisung (Phase ALFA), Erkennung von Programmunterbrechungen,
Start des Uhterbrechungsprogramm durch Erkennen, ob es in RAM 1 oder ROM 2 aufgezeichnet ist,
Verhinderung aller Unterbrechungen, einschließlich des Programms in der Startstufe,
Ermöglichen des Auslesens aus RAM 1 oder ROM 2, je nachdem,
ob das ünterbrechungsprogramm in RAM 1 oder in ROM 2 vorhanden
Ausführung des Auslesens der Anweisung aus RAM 1 oder ROM 2,
Erkennen des Formats der Anweisung,
Herausziehen der Operanden und
Herausziehen der Operanden und
Ausführung der Anweisungen durch Start des zugehörigen Mikroprogramms
(Phase BETA).
Im einzelnen umfasst ZRM ein Register (PSR) 300 (Fig. 9), das
die Parameter des Programms im Laufe der Verarbeitung enthält
und aus den folgenden Registern (vgl. Tabelle ) besteht:
Ein Basisregister (RB) 310, das die Anfangsadresse der für die normalen Programme zugänglichen Speicherzone enthält. Das
Register (RB) 310 wird durch den übersetzer zum Ermitteln der Adressen für die Operanden, die in den Anweisungen enthalten
ist, benutzt. Es wird durch geeignete Anweisungen während
der Ausführung der Programme modifiziert.
509828/07 8 3 _ 30 -
TABELL.E. | Kurabez. | § | Zahl d. Bytes |
Adresse von nach |
00B1 | |
Register Nr. |
Bezeichnung | RB, | NN | 2 | 00B0 | 00B3 |
310 | Basisregister | P1 ■ | 2 | 00B0 | 00B5 | |
311 ' | Zeiger 1 | P2 | 2 | 00B^ | ||
312 | Zeiger 2 | CP | 1 | 00B6 | •MM» | |
313 | Programmbe dingunge η | PI | 1 | 00B7 | — | |
31* | Unterbrechungsreservierg· | MI | Ο | 1 | 00B8 | 00D1 |
315 | Anweisungsmodifizierung | RB. | VX ßi O |
2 | 00D0 | 00D3 |
320 | Basisregister | P1 | 2 | 00D2 | 00D5 | |
321 | Zeiger 1 | P2 CP |
2 1 |
00D6 | .— | |
■ 322 323 |
Zeiger 2 Programrabedingungen |
CI | O | 1 | 00D7 | — |
324· | Unterbrechungscode | MI | NN « |
1 | 00D8 | 00DB |
325 | Anweisungsmodifizierung· | IR | 2 | 00DA | — | |
327 | OPS3 - Adresse | CP | 1 | 00BC | ||
333 | Programnbedingungen | , AI | 1 | 00BD | 00BF | |
33* | Unterbrechungseinschaltg, | II | 2 | 00BE | 00ED | |
335 | Unterbrechungsadresse | IS | 2 | 00SG | — | |
350 | Stop - Adresse | 33D | 1 | 00C7 | 00AF | |
351 , | D3G - Hilfsbyte | RL | 8 | 00Λ8 | 00D6 | |
352 | Arbeitsregister | ITS | 3 | 00Dk | ||
353 | Referenztabellenadresse | |||||
50982.8/0783
Die Zeigerregister (P1 und P2) 311 und 312 sind Rgister,
die von einer bestimmten Anweisung benutzt werden, um die genaue Adresse des Operanden zu-ermitteln. Diese Adressen
ergeben sich durch Addition von P1 331 oder P2 312 zu RB 310.
Ihr Inhalt kann durch besondere Anweisungen verändert werden.
Das Programm-Bedingungsbit, das in Fig. 9a dargestellt ist,
hat die folgende Bedeutung: ,
Die Bits 00, 01 werden Bedingungscode (CC) genannt und durch arithmetische und logische Anweisungen zum Speichern der entscheidenden
Ergebnisse aufgestellt. Diese Bedingungen werden durch andere Anweisungen abgefragt, um bedingte Sprünge auszuführen.
Das Bit 03 wird durch den Übersetzer benutzt um festzulegen, ob die auszuführende Anweisung aus RAM 1 (Bit 03 = 1) ·
oder aus ROM 2 (Bit 03 = θ) ausgelesen werden soll. Dieses Bit
ist normalerweise "Eins" und wird durch das Übersetzungs-Mikroprogramm
nur dann auf "Null" gesetzt, wenn dieses eine Unterbrechung, die durch Betätigung der Taste 100 erzeugt wurde,
erkennt, die ein in ROM 2 befindliches DBG-Programm abruft, um
anzuzeigen, daß die Anweisungen dieses Programmes in ROM 2 ein-»
gelesen werden müssen. Das Bit 05 ist normalerweise bei "Eins" und wird benutzt, um dem Programmierer Unterbrechungen wegen
DBG-Anforderungen zu ermöglichen und wird durch den Übersetzer
auf Null gesetzt, wenn eine Unterbrechung ausgelöst ist. Die Bits 02, Ok, 06, 07 werden nicht durch die DBG-Pr.ogramme benutzt und dienen dazu, Unterbrechungen aus anderen Gründen zu
ermöglichen.
Ein Unterbrechungsreservierungsbyte (Pi) 31^ (Fig· 9) wird
durch den Unterbrecher benutzt, um eine darin enthaltene Unterbrechung auszulösen. Eine Unterbrechung wird dann ausgelöst,
wenn die von PI und CP gebildete Und-Funktion von Null verschieden ist, wie es weiter unten beim Übersetzer-
- 32. -
509828/078 3
Byte teil beschrieben werden wird. Diese"srwird aufgestellt durch
die Mikroprogramme, die mit Unterbrechungsgründen zusammenhängen, die sowohl aus der Zentraleinheit 3 als auch aus den
peripheren Einheiten 4 stammen. Das Bit 05 gibt dabei eine DBG-Unterbrechung an.
Die Art und Weise, in der das Bit 05 des Unterbrechungs-Reservierungsbytes
auf 1 gesetzt wird, soll anschließend in dem Teil der das Fehlerbefreiungs-Hilfsbyte (Tabelle E) betrifft,
im einzelnen beschrieben werden.
Ein Anweisungs-Modifizierungsbyte (MI) 315 (Pig· 9) wird
durch den Übersetzer benutzt, um das zweite Byte der auszuführenden Anweisung zu modifizieren und kann durch den Programmierer
in Abhängigkeit der Ergebnisse der vorangehenden Anweisungen aufgestellt Werdens.
Die Bytes 316, 317 und 318 werden für andere Zwecke benutzt, die nicht die Erfindung betreffen und daher nicht näher erläutert
zu werden brauchen.
ZRM enthält darübeilhinaus ein weiteres Register (OPSR) 301,
das dazu dient, die Parameter des unterbrochenen Programms aufzunehmen. OPSR 301 wird durch den Übersetzer angesteuert
durch Übernahme entsprechender Register und Bytes aus dem Register (PSR) 300. Wenn das Unterbrechungsprogramm beendet
ist, dient die letzte Anweisung stets der Wiederaufnahme des unterbrochenen Programms, das ist eine Anweisung, die OPSR
301 nach PSR 300 überträgt. Im einzelnen enthält das Register
(OPSR) 301:
Die Register RB 320, P1 321, P2 322, CP 323, MI 325, 326, die
mit dem Inhalt der entsprechenden Register 310 bis 316 von
PSR 300 versehen werden.
Das Register 324 enthält den Unterbrechungscode OI (Fig. 9b),
509828/0783 -33-
-33- 2458657
das ist der Code, der eine Unterbrechung im Ablauf des gerade
ausgeführten Programms bewirkt. Er wird durch den Übersetzer aufgestellt bevor das Unterbrechungsprogramm aktiviert
wird. Das bewirkt eine Unterbrechung, die durch CI bestimmt wird und in fünf gleiche Klassen unterteilt ist, die
jeweils durch ein unterschiedliches Mikroprogramm gesteuert werden. Jeder Klasse entspricht ein Bit von CI, die Klassen
1 und 2 entsprechen dabei einem einzigen Unterbrechungsgrund
und werden durch die Bits 01 bzw. 02 identifiziert. Die
Klassen 3, 4 und 5 werden durch die Bits 05» 06 bzw. 07 identifiziert,
wobei jedes eine Vielzahl von Unterbrechungsgründen enthält (höchstens 16), die durch die Bits 00 bis 03
identifiziert werden.
Der Grund den Unterbrechungscode (CI)für die.Ursache der Unterbrechung in OPSR 301 aufzuzeichnen, ist die Tatsache, daß
die Wiederaufnähme oder NichtWiederaufnahme des unterbrochenen
Programms von der Art der Unterbrechung abhängt. Wenn beispielsweise der Unterbrechungsgrund so geartet ist, daß
das unterbrochene Programm nicht wieder aufgenommen werden
kann, muß das Unterbrechungsprogramm mit dem Ruf nach dem . Operator enden. Erst nach dem Eingriff diese
Operators ist es möglich, das unterbrochene Programm fortzusetzen.
Das Register (IR) 32? enthält die Wiedereintrittsadresse von
PSR 300, der diejenige Anweisung entspricht, welche in dem
Moment des Neubeginns auszuführen ist. Sie wird durch den Übersetzer dadurch aufgestellt, daß der Inhalt des Operationsregisters
LO? (Programm-Adressierer) im Augenblick der Unterbrechung
festgehalten wird.
ZRK enthält darüber hinaus ein Register (IPSR) 302, welches
dazu dient, die Parameter des Unterbrechungsprogrammes aufzunehmen.
Das Register enthält ein Byte (CP) 333, das die
509828/0783
damit verbundenen Programmbedingungen angibt. Das Byte CP hat die Bedeutung, die in Fig. 9a angegeben ist und wird
in das Register (CP) 313 durch den !übersetzer im Augenblick
des Einschaltens des ünterbrechungsprogramms überführt.
Das Register (IPSR) 302 enthält darüber hinaus die Unterbrechungsprogramm-Adresse
(II) 335 (Fig. 9), welche in das Register L07 der Register 30 (Fig. 2b) durch den Übersetzer
eingegeben wird, wenn das Unterbrechungsprogramm in RAM 1 eingespeichert wird.
Das Register 302 enthält außerdem das Unterbrechungseinschaltungs-Byte
(AI) 34-3, das in Fig. 9c dargestellt ist, in dem
die Bits 01, 02, 05, 06 und 07, wenn sie sich im 1-Zustand
befinden, angeben, daß die der entsprechenden Unterbrechungsklasse zugeordneten Programme in RAM 1 aufgezeichnet
sind und, wenn sie sich im Null-Zustand befinden, daß
die Programme in ROM 2 aufgezeichnet sind.
Im einzelnen führt der Übersetzer die logische Und-Funktion
zwischen dem Unterbrechungsp.ode (CI) und dem Unterbrechungs-Einschaltungsbyte
(AI) aus. V/enn das logische UND Null, ergibt, soWird damit angezeigt, daß das zu der Unterbrechung
gehörige Programm in ROM 2 aufgezeichnet ist, und wenn es eins ergibt, so heißt dies, daß sich das Programm in RAM 1
befindet.
Im ersten Fall schreibt der Übersetzer den Inhalt des Registers (II) 335 in das Operationsregister L07 ein und im
zweiten Fall schreibt es darin die Adresse der für DBG-Programme
reservierten Zone B in ROM 2 ein.
Zusätzlich enthält ZRM ein Register (IS) 350,' das in Fig. 9
dargestellt ist und die Stop-Adresse aufweist, bei der die Bedienungsperson den Ablauf des Programmes anzuhalten
- 35 -
509828/0783
wünscht, wie es bereits eingangs erwähnt wurde und hier noch
einmal eingehender beschrieben werden soll. Dieses Register wird durch ein DBG-Programm gesetzt, wobei die vom Programmierer
über das Tastenfeld eingegebenen Daten benutzt werden.
In ZBM ist außerdem ein DBG-Hilfsbyte (BSD) 351 enthalten. BSD
351 ist im einzelnen in Fig. 9d dargestellt. Die Bits, die im Bit 01 benutzt werden, zeigt an, ob eine im Augenblick
der Unterbrechung vorliegende Anweisung noch ausgeführt werden soll oder nicht (wie es eingehender im den Übersetzer betreffenden
Abschnitt erläutert werden wird). Wenn dieses Bit gleich Null ist, wird die Anweisung ausgeführt. Im anderen
Falle wird das Unterbrechungsprogramm ausgeführt* Das Bit 02 gibt ab, ob ein Halt reserviert worden·ist, es wird durch das
DBG aufgestellt, das mit dem adressierten Halt zusammenhängt.
Das Bit 03 gibt an, ob der Umschalter 100 sich in seiner Nor—
malposition (Bit 03 = 0) oder in seiner Fehlerbefreiungs-Position
(Bit 03 = 1) befindet. Es wird aufgestellt durch ein
Mikroprogramm, das von der Position des Umschalters 100 abhängig
ist.
Mittels des Umschalters 100 im Bedienungsfeld 7 wird ein Kontakt 60 geschlossen, der über die Leitung 61, die einen Teil
des Kanals 62 bildet, direkt an die Verbindung NA angeschlossen
Wenn sich der Umschalter 100 in seiner Normal-(N)-Position
befindet, ist der Kontakt 60 geöffnet und die Leitung 61 befindet sich infolgedessen auf dem Null-Pegel. Wie bereits gesagt,
entspricht dies dem Normalzustand der Anlage. Befindet sieh der Umschalter 100 jedoch in seiner Fehlerbefreiungs-(DBG)-Position,
so ist der Kontakt 60 geschlossen und die" Leitung 61 befindet sich auf dem Eins-Pegel.
509828/0783 - 3* -
Der Zeitgeber 20 erzeugt alle 60 Millisekunden ein Signal
TM, welches eine Unterbrechung der Mikroprogramme der Stufe
4- (d.h. der Übersetzer-Mikroprogramme) bewirkt und führt die Mikroanweisung aus, die durch das.Register L01 (Adressierer
der Mikroprogramme von Stufe 3) adressiert sind. Diese Mikroanweisung bildet einen Teil der vorbestimmten Folge von
Mikroanweisungen, welche den verschiedenen externen Bedingungen entsprechen, die während des Ablaufs eines Programmes
überprüft werden müssen.
Genauer gesagt ist im Augenblick TM im Register L01 die Adresse
gegenwärtig, die dem entsprechenden Mikroprogramm IDISO zugeordnet
ist.
Mittels einer Mikroanweisung MAD wird der Inhalt der Zelle
mit der Adresse odiagonal gestrichen C7, das ist das DBG-HilfsbyiP
(BSD) 351, in A10 eingespeichert. Anschließend wird mittels der Mikroanweisung CRTA die Zahl "17" = 11110111 in
das Register B02 eingespeichert. Mittels einer Mikroanweisung
AOT)A wird die logische Und-Funktion von BDS und "F7" in Δ10 überführt, d.h.-, daß sich in A10 das Fehlerbefreiungs-Hilfsbyte(BSD)
mit dem Bit bO3 » 0 befindet.
Anschließend wird mittels der Mikroanweisung TGCA das im Kanal
62 vorhandene Byte (vgl. Fig. 2) nach A08 überführt. Das heißt im einzelnen, daß wenn der Umschalter 100 in der DBG-Position
ist, sich die Leitung 61, welche dem Bit 02 im Kanal 62 entspricht) sich im Eins-Zustand befindet. Mittels
einer Mikroanweisung TADI wird das Byte im Kanal 62 zu den
Schaltelementen des Registers 40 überführt. Dann wird mittels
der Mikroanweisung CRTB die Zahl "00" in das Register B02
eingegeben. Anschließend wird der logische Zustand des Schaltelementes D02, das die Bedingung der Leitung 61, welche der
DBG-Position des Umschalters 100 entspricht, enthält, abgefragt. Wenn sich dieses Bit im 1-Zustand befindet, wird die
- 37 -
509828/078 3
Zahl "08" = 0001 mittels der Mikroanweisung CRTB in das Register
B02 eingegeben und die logische Oder-Funktion (Mikroanweisung ORA) wird dann zwischen den Inhalten der Register
A10 und der Zahl "8" gebildet. Es soll festgehalten werden, daß das Hilf sbyte (BSD) mit dem Bit 03 = 0 in dem Register
A10 festgehalten worden ist und das Ergebnis der Mikroanweisung ORA daher das Bit Ό3 auf eins setzt.
Wenn sich dagegen das Bit auf der Leitung 61 auf dem Null-Pegel befindet, wird die Mikroanweisung CRTB, welche 00001000
in B02 eingibt, nicht ausgeführt, so daß die logische Oder-Punktion
zwischen den Inhalten des Registers A10 und der Zahl "00000000" ausgeführt wird, was bedeutet, "daß das Bit
03 von BSD auf Null bleibt.
Nach diesen Operationen wird die Position 00C7 (BSD 351)
mittels der Mikroanweisung AMD neu beschrieben und BSD auf
diese Weise modifiziert. Wenn der Umschalter 100 in seiner Normal-Position ist, wird das Bit 03 = 0_, wenn er sich dagegen
in der DBG-Position befindet, wirdA/03 =1. Das—selbe
Mikroprogramm bietet darüber hinaus die Möglichkeit, das Bit 05 des Unterbrechungsreservierungsbytes (PI) aufzustellen.
Mittels der Mikroanweisung MAD wird das Byte bei der Adresse 00B7 von RAM 1 aufgezeichnet, d.h. das Byte (PI) 314· wird
in das Register A02 überführt.
Abschließend wird das Bit 05 von PI mittels der beiden Mikroanweisungen
CTRB und ANDA zu Null gemacht. Mittels der Mikroanweisung TADl· wird der Inhalt des Registers A10 - das ist
das HilfsbyteBSD, das kürzlich in Übereinstimmung mit der
Position des Umschalters 100 modifiziert wurde, in das Register 40 übertragen.
Die Zahl "20" = 00100000 wird dann mittels der Mikroanweisung
CRTB in das Register B02 eingeschrieben. Anschließend wird
- 38 -
509828/0783
mittels der beiden Mikroanweisungen SADI die Bits BO2 und
B03 von BSD abgefragt, die vorher in das Register 4-0 eingespeichert
worden sind und sich auf die Reservierung einer HALT-Adresse bzw. auf die Betätigung des Umschalters 100 beziehen.
Wenn sich mindestens eines der abgefragten Bits im Ί-Zustand befindet,.setzt die Mikroanweisung ORA das Bit 05
des Bytes PI auf eins, welches mittels der Mikroanweisung
AMD in RAM 1 wieder eingeschrieben wird. Wenn auf der anderen Saite beide Bits 02 und 03 von BSD sich im Null-Pegel befinden,
wird durch die Mikroanweisung GRTB in das Register
B02 die Zahl "10" = 00010000 eingegeben, welche einem anderen Unterbrechungscode entspricht, der nicht die Fehlerbefreiung
betrifft und daher hier nicht beschrieben wird.
Außerdem enthält ZRM ein 8-Byte-Register, das als Arbeitsregister
(RL) 352 (Fig. 9) bezeichnet und im Arbeitsbereich zum Akkumulieren der Teilergebnisse während der Ausführung
einiger Instruktionen und zum Liefern eines Ergebnisses am Ende einer Anweisung, das nicht in den Registern für die
Operanden enthalten sein kann (beispielsweise der Rest einer Division) benutzt wird.
AuSerdem gehört zu ZRM ein Acht-Byte-Register 359, das als
Bedingungsregister RC bezeichnet wird. Jedes Byte unterteilt sich in zwei Semibytes, welche besondere Programmbedingungen
angeben-r Das Register 359 wird benutzt, um alle signifikanten
Programmbedingungen festzuhalten, die während der Ausführung von internen oder externen Anwexsungen auftreten und die im
Hinblick auf ihre Zahl nicht im Bedingungscode ausgedrückt werden können oder welche günstigerweise unabhängig davon
gespeichert werden.
Von allen Semibytes wird hier der Inhalt des neunten erläutert werden, da nur dieses für das DBG-Programm benutzt wird, wie
im folgenden erläutert wird. Das neunte Semibyte nimmt die
50 9828/078 3 - 39 -
ersten vier Bits der Zelle 0 0CB ein und wird durch die über
das Bedienungsfeld eingegebenen Anweisungen benutzt, um den Code der Taste 102 aufzustellen, durch deren BetätigungdieEingabe von
Baten über das Tastenfeld beendet wurde.
Schließlich, enthält ZRM ein Einbyte-Register (AB) 370, das
die Tasten 102 identifiziert, welche in Abhängigkeit vom Programm aktiviert werden. Das Register wird also gesetzt, wie
aus dem folgenden ersichtlich sein wird, durch die DBG-Programme zum Aktivieren der Tasten SO, S1t" S2 und S6, da diese
lediglich während der Fehlerbefreiung eine Bedeutung haben.
Schließlich enthält ZRM noch eine Gruppe von acht Registern 350 bis 367 (Fig. 9)>
welche normalerweise durch das Programm folgendermaßen benutzt werden: Die Register 360 bis 363 werden
zusammen mit dem Arbeitsregister 352 benutzt um Zwischenergebnisse
während der Ausführung von Multiplikationen oder Divisionen aufzunehmen und Ergebnisse, welche nicht von den
Operandenregistern aufgenommen werden. Genauer gesagt werden die Multiplikation- und Divisions-Anweisungen von Mikroprogrammen
ausgeführt, die auf die genannten Register einwirken. Es soll festgestellt werden, daß der Inhalt dieser Register
am Ende der Anweisung, die sie benutzt hat, nicht wesentlich ist, soweit alle signifikanten Bedingungen und Ergebnisse
in Speicherzonen außerhalb von ZRM übertragen worden sind, die durch die Operanden der jeweiligen Anweisung adressiert
wurden.
Die Register 364 und 365 werden durch die Anweisungen zur Ausgabe
eines Registerinhaltes benutzt, d.h. sie, enthalten alle Zeichen, die si,ch auf Zeichensetzung, die algebraischen Zeichen (Plus-Zeichen,
und Minus-Zeichen) die Zwischenräume usw. beziehen, die beim Ausdruck einer Speicherzone benötigt werden. Sie
werden durch die Operanden dieser Anweisungen abgerufen und
ihr Inhalt ist zum Ende einer solchen Anweisung nicht mehr·
wesentlich. Die Register 366 und 367 werden durch das DBG- .
509828/0783
Programm als eine Erweiterung des Registers (OPSR) 301 benutzt.
Das heißt, daß sie dazu dienen,, signifikante Bedingungen
des unterbrochenen Programmes aufzunehmen, welche
nicht iia Register (OPSR) 301 enthalten sind. Es soll festgestellt
v/erden, daß während die Register 360 bis 365 am
Ende einer sie benutzenden Anweisung keine signifikanten
Daten enthalten, die Register 366 und 367 signifikante Daten zum Zwecke der Wiederaufnahme des unterbrochenen
Programmes enthalten und deshalb durch die DBG-Programme nur
in besonderen Fällen, die jetzt genannt werden sollen, benutzt werden können. Es soll darüber hinaus darauf hingewiesen
werden, daß die Register 360 bis 367 nicht notwendigerweise
den Positionen in RAM 1 zugeordnet sein müssen, wie es aus Fig. 9 hervorgeht, sondern sich in jeder Speicherzelle befinden können. Eines der wesentlichen Merkmale der
Erfindung liegt in der Identifizierung in RAM 1 mittels der betreffenden Adressen_einer bestimmten Anzahl von Registern
(in ciessn Fall acht)?nn Ende der Ausführung der Anweisungen
keine signifikanten Daten enthalten und im Gebrauch dieser Register als Unterstützungsregister bei den Fehlerbefreiungsprograiamen.
Dies geschieht selbstverständlich automatisch ohne Eingriff des Programmierers, der lediglich den
Umschalter 100 und die Tasten 102 betätigen muß.
3s soll darauf hingewiesen werden, daß nicht notwendigerweise
die Register 360 bis 367 als Unterstützungsregister für das
D3G--Programm benutzt werden müssen und genau so gut Register,
die ausschließlich für die DBG-Programme reserviert sind, benutzt werden können und sowohl innerhalb von ZRM als auch in
einem freien Speicher oder sogar als Register außerhalb des
Speichers angeordnet sein können.
Di-- freie Speicherzone- das ist die Zone, die sich unmittelbar
an ZRM anschließt - enthält darüber hinaus eine Zone, die als Referenztabellenzone bezeichnet wird und deren Ort durch
509828/0 7 83 BAD 08!GINAL.
sin Register von ZRM bestimmt wird. Dieses Register (IiR)
353 weist drei Bytes auf, wovon die ersten beiden die Anfangsadresse der Tabelle bestimmen, während das dritte die
Länge der Tafel selbst (maximal 256 Bytes) angibt. Die Referenztabelle
wird durch die Operanden adressiert. Die freie Speicherzone, die sich der Referenztabelle unmittelbar anschließt,
enthält sechzehn Register, jeweils von acht Bytes, welche privilegierte Register genannt werden. In der Tat
können diese Register direkt durch Anweisung mittels Angabe ihrer Bezugsnummer in hexadezimaler Notation adressiert
xverden. per übrige Teil von RAM 1 kann darüber hinaus frei
adressiert werden.
RCK 2 teilt sich in zwei Zonen A und B auf (Fig. 9). Die Zone
A enthält alle diejenigen Mikroprogramme, die die Arbeit des Prozessors betreffen, während die Zone B die DBG-Programme
enthält.
5» Anveisunssinterpretations-Mikroprogramm (Übersetzer)
Wie bereits festgestellt wurde, werden die Programme von RAM
1 Anweisung für Anweisung ausgeführt. Jede Anweisung wird .wiederum in zwei Phasen ausgeführt: eine Interpretationsphase
(Paase ALFA) und eine Ausführungsphase (Phase BETA). Die Ausführuiigsphase
ist allen Anweisungen gemeinsam und wird durch geeignete Mikroprogramme, die Übersetzer genannt werden und
in der Zone A von ROM 2 aufgezeichnet sind, ausgeführt. Diese Phase endet mit der Erkennung des Formats der Anweisung, die
das ■Jbersetzermikroprogramm selbst aus RAM 1 oder ROM 2 ausgelesen
hat und mit der Vorbereitung der Operanden im Operationsregister 30. Dieses Mikroprogramm wird deshalb zum Be- '
ginn jeder Anweisung durch diejenige Mikrοanweisung, welche
die Durchführung der gerade ausgeführten Anweisung beendet, abgerufen.
509 82 8/078 3 - hz -
BAD ORIGINAL
Im einzelnen geht die Ausführung jeder Anweisung des
Programms, welches der Prozessor durchführt, in der folgenden Weise vor sich:
Die letzte Mikroanweisung des Mikroprogramms, welches
die vorhergehende Anweisung ausgeführt hat, ist eine nicht-bedingte Sprungmikroanweisung SAI zur Adresse IALFA
welches die erste Mikroanweisung des Übersetzer-Mikroprogrammes
darstellt.
Die nun folgende Beschreibung bezieht sich auf die Fig. 9» 10a, 10b und 10c. Mittels der ersten beiden Mikroanweisungen
CRTA und AMD wird das Zeichen CRT "00" bei der Adresse 00B8 von RAM 1 eingegeben, d.h. daß das Anweisungs·
Modifikationsbyte (Block 200 in Fig. 10a) auf Null gesetzt wird, was vor einer neuen Anweisung durchgeführt werden
muß. Mittels der folgenden beiden Mikroanweisungen, das sind MAD und TAB, wird der Inhalt der Zelle 00B6 in das
Operationsregister B15 des Registers A1h überführt. Diese
509828/0783
BAD ORiGINAL
Zelle enthält, wie bereits gesagt, das Programmbedingungsbyte
(GP) 513 (Block 201).
Durch die nächste MAD wird in das Register A14 der
Gruppe 31 der Inhalt der Zelle 00B? übertragen, in dem das
Unterbrechungs-Reservierungsbyte (PI) 314 (Block 201) festgehalten
ist.
Wie bereits dargestellt wurde, enthält das Unterbrechungs-Reservierung
sby te PI in kodierter Form die Gründe, die eine Unterbrechung des auszuführenden Programms bewirken. Die.
logische Und-Funktion wird mittels der Mikroanweisung AND
(logische Entscheidung 202) gebildet mit CP 313 und PI
Wie bereits erläutert wurde setzt die Mikro-
anveisung AND das Schaltelement D01 der Gruppe von -Schaltelementen
von 40 auf eins, wenn das Ergebnis von AND Null
ist. Mittels der nachfolgenden Mikroanweisung SADO wird der
Inhalt des Schaltelementes D07 abgefragt und wenn es sich
auf dem logischen Nullpegel befindet (d.h., daß eine Unterbrechung
reserviert worden ist) wird ein Sprung zu derjenigen Adresse ausgeführt, die den symbolischen Namen IINTE
(31ock 25O) aufweist, bei der die erste Mikroanweisung desjenigen
Mikroprogramms festgehalten ist, das die Unterbrechungen st&uert. Wenn jedoch das Schaltelement
sich auf dem logischen 1-Pegel befindet, wird die
Phase ALFA des Auslesens aus RAM 1 fortgesetzt.
Jetzt sollen die Bedingungen untersucht werden, die den Sprung
nach IINTE oder die Fortsetzung des Übersetzungsmikroprogranms
bestimmen.
Wenn das Byte PI bei 0000 0000 ist, ergibt die UND-Funktion
mit dem 3yte CP ebenfalls 0000 0000, so daß das das Schaltelement D01 sich auf dem 1-Pegel befindet und eine Sprunganweisung daher nicht ausgeführt wird. Die Bedingung PI
5 0 9 8 2 8/0783
0000 0000 zeigt an, daß keine Unterbrechung reserviert worden ist. Wenn wenigstens ein Bit von PI im 1-Zustand ist und das
entsprechende Bit von CP ebenfalls auf 1 ist, heißt das, daß eine bestimmte MikroUnterbrechung vorbereitet ist und die Und-Funktion
zwischen GP und PI muß bei einem Bit desselben Gewichtes wie das von PI"1 "ergeben. Wenn beispielsweise eine
Unterbrechung mittels des Bedienungsfeldschalters 100 (Fig. 1b) vorbereitet worden ist, muß das Byte PI, wie bereits dargelegt,
die Konfiguration 0010 0000 haben. Das Byte CP wiederum muß vom Programmierer in der Konfiguration 1X1X XXXX gesetzt
werden, da das ablaufende Programm die DBG-Unterbrechung zuläßt,
so daß die Und-Funktion zwischen CP und PI 0010 0000 ergibt. Infolgedessen wird D01 durch die Mikroanweisung AND
auf UuIl gesetzt und es ergibt sich der Sprung nach IINTE.
Falls keine Unterbrechung vorlag, wird das gesamte Byte CP
mittels der Mikroanweisungen MAD und TADI (Block 203) in das Register 40 überführt. Es wird dann eine Überprüfung mittels
der Mikroanweisung SADI ausgeführt, ob das Schaltelement D03
sich auf dem Eins- oder auf dem Null-Pegel befindet (logische Entscheidung 204).
Wie bereits gesagt, gibt das Bit 03 des Bytes CP an, ob das
Auslesen der auszuführenden Anweisung aus RAM 1 oder aus ROM 2 erfolgt.
Wenn das -^e sen der auszuführenden Anweisung aus RAM 1 (bei
normalen Programmen) erfolgt, werden das erste und das zweite Byte der Anweisung bei der im Langregister LO? enthaltenen.
Adresse mittels der beiden Mikroanweisungen MBIP (Block
205) ausgeben. Bei jedem Auslesen (MBIP) wird das Register
L07 um eins heraufgesetzt. Die beiden Bytes werden darüber
hinaus in die Register B14 und B15 der Operationsregister 32
509828/078 3 -45-
überführt. Aus dem Gesagten geht hervor, daß das Register LO7 als ein Programmadressierer für die Anweisungen dient,
da es nach Jedem Auslesen Jeweils die Adresse der folgenden Anweisung angibt. Darüberfhinaus hat es in dem Falle, daß
die der vorliegenden vorangehende Mikroanweisung eine Sprunganweisung
war, mittels eines geeigneten in der BETA-Phase ausgeführten Mikroprogramm im Register LO7 diejenige Adresse
der Anweisung in RAMt festgelegt, zu der gesprungen werden soll. Zusammenfassend gesagt, enthält das Register L07 die
Adresse der nachfolgenden Anweisung in RAM 1 sowohl für den Fall der sequentiellen Adressierung als auch den der Adressierung
mit einem Sprung.
Wenn die vorliegende Anweisung aus ROM 2 (Fall der DBG-Prograrame)
ausgelesen werden soll, muß das Bit 03 der Programmbedingungen
auf Hull gesetzt werden, so daß der Sprung nach IALFA1 nicht ausgeführt wird. Die Mikroanweisung SLL wird
Jedoch ausgeführt und tauscht den Inhalt des Registers L07 mit dem Inhalt des Registers· L02 (Block 206). Anschließend
werden mittels zweier aufeinanderfolgender Paare von Anweisungen ROMA und TAB die ersten beiden Bytes der gelesenen
Anweisung in die beiden Register B14· und B15 (Block 206)
überführt.
Es muß erwähnt werden, daß der Austausch von LO7 und
L02 sich wegen der Tatsache als notwendig erweist, daß die
Mikroanweisung ROMA, welche das Auslesen aus ROM 2 bewirkt,
ausschließlich durch das Register L02 adressiert wird. Darübeijhinaus
setzt es den Inhalt des Registers nach Jedem Auslesen um eins herauf. Nach dem Auslesen des ersten und
zweiten Bytes der Anweisung wird der Inhalt des Registers LO7 durch den Austausch der Mikroanweisung SLL, mittels
derer der Inhalt des Registers L02 mit dem des Registers L07 ausgetauscht wird, wieder hergestellt. Es ist deshalb festzuhalten,
daß in den beiden Fällen des Auslesens von RAM 1
509828/0783
und ROM 2 die beiden Bytes der auszuführenden Anweisung in den beiden Registern B14 und B15 des Registers 32 festgehalten
sind und/üaß nach einem solchen Auslesen das Register
LO7 bereits die Adresse der nachfolgenden Anweisung enthält. Anschließend wird mittels der drei Mikroanweisungen
MAD, REDI und ADDB (Block 207 in Fig. 10a) das zweite Byte der ausgelesenen Anweisung in Übereinstimmung mit dem Anweisungsmodifizierungsbyte
(MI), das vorher in der Zelle 00B8 festgehalten wurde, verändert·
Mittels der Mikroanweisungen CRTB und TBA (Block 208) wird
das erste Byte der Anweisung benutzt, um die ROM-Adresse, zu errechnen, von der Paare von Bytes geschrieben werden,
die den Formaten der Anweisungen (erstes Semibyte) und den Adressen der Ausführungsphase (zweites, drittes und viertes
Semibyte) des zugehörigen Anweisungssatzes entsprechen. Diese Bytepaare bilden die die Anweisung charakterisierenden
Elemente. Anschließend werden mittels der beiden folgenden Kikroanweisungen ROMA die zu der Anweisung gehörigen Bytes
ausgelesen und in die Operationsregister L02 (Fig. 8) überführt. Jetzt wird&iän L02 enthaltene Anweisung durch ein
Mikroprogramm, das eines der in Fig. 1Od angegebenen Formate
erkennt, untersucht.
Wenn die erkannte Anweisung das Format 1 hat, besteht sie
aus einem Funktionscode F, zwei Bits 11 und 12, welche angeben,
oövdie jeweiligen Register R1 und R2 RAM 1 direkt oder indirekt adressieren, und zwei Felder R1 und R2 von jeweils
4 Bits, welche zwei Konstanten angeben. Wenn 11 = 12 =
0 ist, werden die Adressenoperanden durch Multiplikation der Konstanten R1 und R2 mit 8 und Addition dieses Wertes zu
dem Inhalt des Basisregisters (RB) 310 ermittelt. Auf diese
Weise kann RAM 1 für Registern von acht Bytes adressiert werden. Für den Fall 11 = 1 und 12 - 0 bezeichnet R1 eines
von sechzehn privilegierten Registern in RAM 1 und R2 hat die-
- 47. -
509828/078 3
selbe bevorzugte Bedeutung. In diesem Fall wird der erste
Operand in der Zone von RAU 1 gelesen, die durch den Inhalt von RI adressiert worden ist, während der zweite Operand wie
vorgenannt errechnet wird. Alle Fälle mit 11 = O und 12 = 1
oder 11 =12 = 1 können aus den vorhergehenden hergeleitet
werden.
Wenn die Anweisung das Format 2 hat, besteht sie aus einem Funktionscode F, einem Bit I und zwei Feldern RI und L2. Der
erste Operand wird wie im Format 1 (11 = 0, 11 =1) ermittelt,
und der zweite Operand durch Addition der Zeiger P1 oder P2, die durch die Godes F bis RB ermittelt werden, errechnet.
Das Feld L2 enthält die Anzahl von Bytes des zweiten auszulesenden
Operanden, beginnend mit der ermittelten Adresse.
Wenn die Anweisung das Format 3 aufweist, besteht sie aus einen Funktionscode F und zwei Feldern L1 und L2. Die Adressenoperanden
werden wie bei dem zweiten Operanden des Formates 2 errechnet und die !Länge der Operanden wird durch die Felder
L1 und L2 angegeben.
Wenn die Anweisung das Format 4 aufweist, besteht sie aus
zwei Feldern. Eines gibt den Funktionscode F an und das andere ein Feld E, KD, I und L, welches vier verschiedene Bedeutungen
auf der Basis des Inhaltes von F annehmen kann. Der Code F adressiert zwei Operanden mittels der Zeiger P1
und P2, wie beim Format 3>
und gibt darüber hinaus die Bedeutung des zweiten Feldes an.
Wenn die Anweisung das Format 5 hat, enthält sie einen Funktionscode
F, in dem der erste Operand wie beim Format 3 und
der zweite Operand wie beim Format 1 errechnet wird.
Bei einer Anweisung vom Format 6 werden die beiden Bytes der
Anweisung direkt in der nachfolgenden BETA-Phase benutzt.
509 828/0 78 3 - 48 -
Eine Anweisung vom Format-7 besteht aus vier Bytes, wobei
zunächst die Bytes 1 und 2 in andere Register JO überführt
werden und dann die beiden durch das Register L07 adressierten Bytes 3 und 4 in B14 und B15 gebracht werden. Die Anweisung
besteht aus einem Funktionscode F, einem Feld E, das dasjenige Element der Referenztabelle bezeichnet, aus
dem die Adresse des Operanden ermittelt werden kann, und ein Feld LD, welche den Abstand in Bezug auf die in dieser
Weise ermittelte Adresse angibt.
Nach diesen Operationen hat der Übersetzer seine Aufgabe erfüllt und leitet daher die Ausführungsphase BETA ein, in
welcher die vorher ermittelten Operanden verarbeitet werden.
Wenn während der Phase ALFA eine Unterbrechung erkannt wird (logische Entscheidung 207 in Fig. 1Oa) führt der Übersetzer
einen Sprung zu der Adresse HNTE ( Fig. 1Ob)
aus. Lie erste Mikroanweisung AND ermittelt wiederum das ,
Ergebnis der logischen Und-Funktion zwischen CP und PI und
speichert das Ergebnis im Register B15 (Block 251). Dieses
Ergebnis wird dann nach DEV 40 mittels der Mikroanweisung
T3DI überführt und die Schaltelemente werden abgefragt, um
den Grund der Unterbrechung (Block 252) zu ermitteln. Es sollen hier alle möglichen Gründe von Unterbrechungen außer
Acht gelassen werden mit Ausnahme derer, die auf einem Einschreiten des Programmierers wegen eines DBG Bedarfs beruhen.
Das DBG-HiIfsbit wird aus RAM 1 mittels der Mikroanweisung
MAD ausgelesen und anschließend mittels der Mikroanweisung TADI (Block 256) zu den Schaltelementen des Registers
40 überführt. Anschließend werden die Schaltelemente D01, D02 und D05, welche die Bits 01, 02 bzw. 03 des BSD enthalten,
untersucht.
509828/078 3
Das Bit ist normalerweise in Null-Zustand, woraufhin ein
Sprung zu der Adresse IINTE1 ausgeführt wird, "bei der das
Bit auf Eins gesetzt und ein Sprung nach der Adresse IALSAR
ausgeführt wird. Das ist deswegen notwendig, damit die Unterbrechungsfunktion nicht in eine fortgeschrittene oder
laufende Anweisung fällt, sondern erst am Ende derselben
ausgeführt wird. Anschließend wird das Schaltelement D03
(Block 259) abgefragt, welches das adressierte STOP von allen anderen DBG-Programmen unterscheidet.
Das überprüfen des Bits 03 wird nach dem Bit 02 wegen der
nachfolgend zu erläuternden Gründe bewirkt. Es soll angenommen werden, daß der Programmierer eine STOP-Adresse eingibt,
d.h., daß er die Ausführung des Programmes bei einer bestimmten Stelle, die mit der STOP-Adresse übereinstimmt,
zu unterbrechen wünscht. Dadurch wird das Bit 02 von BSD zusammen mit dem Bit 05 des Bytes TI auf eins gesetzt, was
anschließend noch ausführlicher erläutert werden soll. Diese Bitanordnung veranlasst den Übersetzer zu der Adresse HUTE
(logische Entscheidung 202) zu springen, von wo aus er zu
der logischen Entscheidung 259 gelangt.
Die logische Entscheidung 259 unterscheidet, ob, neben dem adressierten STOP ein anderes DBG-Prograram durch den Programmierer
angefordert worden ist. Das kann ggf. dann auftreten, wenn die Bedienungsperson - sobald STOP-Anforderung
ausgeführt ist - merkt, daß sie für ihn nicht von Nutzen ist und er statt dessen beispielsweise wünscht, ein bestimmtes
DBG-Programm auszuführen, das auf einer Magnetkarte 9 festgehalten ist. Diese Möglichkeit entspricht dem Zustand,
daß die Bits 02 und 03 des BSD gleichzeitig auf "1" sind.
Dadurch wird ein Sprung des Übersetzers nach IINTE2 veranlaßt. Es wird vorher dafür gesorgt, daß bei IINTE2 das
adressierte STOP unterdrückt und das durch.den Programmierer ausgewählte DBG-Programm ausgeführt wird. In dem dargestellten
Beispiel bewirkt dieses Programm das Lesen und die Ausführung des Programms, das auf der Magnetkarte 9 festgehalten
ist.
509828/078 3
- 50 -
Es ist selbstverständlich, daß die Suche nach einer reservierten STOP-Adresse nur dann stattfindet, wenn keine anderen
DBG-Anfragen vorliegen und das DBG-Programm hat deshalb eine niedrigere Priorität. Das Bit 02 des adressierten STOP wird
durch eine andere DBG-Anfrage unterdrückt.
Für den Fall, daß die einzige DBG-Anfrage eine reservierte
STOP-Adresse ist, werden die Mikroanweisungen MAD, TAB und
MAD (Block 260) ausgeführt, mittels derer die beiden Bytes der reservierten STOP-Adresse aus den Zellen 00EC und 00ED
(Register IS 350, Fig. 9) in das Register L08 (30 in Fig. 2b)
überführt wird. Anschließend wird mittels der Mikroanweisungen ORE, SADO, ORE die Exklusiv-Oder-Funktion mit den Inhalten
der Register L07 und L08 (30 in Fig. 2b) gebildet, d.h. es wird ein Vergleich durchgeführt zwischen der programmierten
Adresse und der reservierten Adresse (Block 261).
Wenn die beiden Adressen übereinstimmen, setzt die Mikroanweisung
ORE das Schaltelement DO1 auf "Eins". In diesem Fall
bewirkt die Mikroanweisung SADI ein Sprung nach IINTE2 (logische
Entscheidung 262) und es findet - wie noch erklärt werden wird - ein optische Anzeige der bei der reservierten
Adresse aufgezeichneten Anweisung statt.
Im Falle von unterschiedlichen Adressen werden die Mikroanweisungen
GRTB, ORA und AND ausgeführt und bewirken ein Einschreiben
von BSD in RAM 1 bei den Adressen 00C7, wobei das Bit 01 inzwischen auf den 1-Pegel (Block 265) gesetzt worden
ist. Anschließend werden dort die Mikroanweisungen MAD und TAB ausgeführt, die das Byte GP im Register B15 (Block 266)
wieder herstellen. Eine Mikroanweisung SAI wird anschließend
ausgeführt und erzeugt einen nicht bedingten Sprung zu der Adresse IALFAR (Block 203 in Fig. 10a).
_ 51 -
509828/0783
24 5865
Auf diese Weise wird das Bit 01 von BSD auf eins gesetzt, unabhängig davon, ob sich dieses Bit auf dem O-Pegel (logische
Entscheidung 256) befindet oder die Adressen sich unterscheiden, so daß auf jeden Fall die Übersetzung der
Anweisung fortgesetzt wird und der Übersetzer während der nachfolgenden Anweisung wiederum einen Adressenvergleich
durchführt. In dem Ball, daß die Adressen übereinstimmen oder eine DBG-Anforderung vorliegt, die sich von einer STOP-Reservierung
unterscheidet, wird ein Sprung zu der Adresse IINTE2 ausgeführt.
Die Mikrοanweisungen CRTB und ANDA werden ausgeführt und
machen das Bit 01 vom DSB (Block 270) zu Null, so daß das
Bit sich wieder in seinem Normalzustand befindet, nachdem
die Unterbrechung eingeleitet wurde. Das auf diese Weise modifizierte Hilfsbit BSD wird dann in RAM 1 bei der Adresse
00C7 mittels der Mikroanweisungen AMD und CRTB (Block 271)
zurückgeführt...
Auf diese Weise wird die STOP-Reservierung gelöscht. Anschließend
wird die Mikroanweisung CRTB ausgeführt, mittels derer das Byte GI "0000 0100",-das angibt, daß der Grund der
Unterbrechung ein DBG-Programm ist, in das Register B13 eingespeichert (Block 272).
Beginnend mit dieser Mikroanweisung findet die tatsächliche Unterbrechung des laufenden Programms statt. Die acht Mikroanweisungen,
die denjenigen, die bei der Adresse IERR01 in ROM ? vorhanden sind, werden ausgeführt und bewirken die
Überführung der ersten-zehn Bytes der Parameter des ausgeführten
Programms aus dem Register (PSR) 300 in die entstehenden Zellen des Registers (OPSR) 301 (Block 273).
Der Inhalt des Registers L07 wird dann bei den Adressen
00DA und 00DB von RAM 1 mittels der Mikroanweisungen BMIP
50 9 8 28/0783
und AMI eingespeichert, d.h. daß die Programmadressierung
des unterbrochenen Programms im Register (OPSR) 301 aufbewahrt wird (Blöcke 27^ und 275).
Der Unterbrechungscode, der vorher aufgestellt würde, wird dann mittels der Mikroanweisungen CRTA und BMI bei der
Adresse 00D7 (Register 524 in Fig. 9) eingespeichert.
Auf diese Weise werden im Register (OPSR) 301 alle Parameter
aufbewahrt, die die Wiederaufnahme des unterbrochenen Programms am Ende des Unterbrechungsprogrammes erlauben.
Wie sich noch zeigen wird, enden alle Unterbrechungsprogramme mit der Rückübertragung des Inhalts des Registers (OPSR)
in das Register (PSR) 300. Nach dieser Phase versorgt das Übersetzungs-Mikroprogramm das. Register 300 mit den Parametern
des Unterbrechungsprogramms, das anstelle des unterbrochenen Programms ausgeführt werden soll. Im einzelnen
macht es mittels der Mikroanweisungen AMD (Block 280 Fig. 10c) das Byte MI des Registers (PSR) 300 zu Null und mittels
der Mikroanweisungen MAD und TBA . überträgt es in das Register B09 das Byte AI, das in der Zelle 00BD von RAM 1
(Register (AI 334) festgehalten ist und in das Register A11
das Byte GI, das vorher in der Form "00000100" (Block 281) aufgestellt worden ist.
Wie bereits gesagt, ist das Byte AI durch den Programmierer
erzeugt worden, um festzulegen, ob das Unterbrechungsprogramm in RAM 1 oder in ROM 2 vorliegt. In diesem bestimmten Fall
hat man sich - aus den Gründen, die schon in der Einleitung erläutert worden sind - dafür entschieden, die DBG-Programme
in ROM 2 zu speichern, was jedoch für den Benutzer nicht die Möglichkeit ausschließt, seine eigenen DBG-Programme in RAM
1 zu speichern, falls er die Möglichkeit dazu hat. Hierfür ist es ausreichend, das Bit 03 in AI 334 zu aktivieren. Dort
509828/07 83
wird die logische Und-Funktion mit AI und CI gebildet, wodurch D01 = 1 gesetzt wird, wenn sich das Ergebnis von
0000 0000 unterscheidet(Block 282).
Die Mikroanweisung SADO kontrolliert das Schaltelement D01
und falls sich dies auf eina befindet (das Programm ist in ROM gespeichert) führt es die beiden Mikroanweisungen CRTA
und AMD aus, welche das Byte CP des laufenden Unterbrechungsprogramms (Block 283) zu Null machen.
An dieser Stelle soll noch darau^hingewiesen werden, daß das
Interpretations-Mikroprogramm, nachdem erkannt wurde, daß der Grund der Unterbrechung ein DBG ist, Unterbrechungen
aus allen anderen Gründen verhindert, die nicht kompatibel mit den DBG-Programmen sind;
Anschließend werden die-Mikroanweisungen CRTB und CRTA ausgeführt,
wodurch die Adresse 1700 von ROM 2 in das Register LO7 (Block 284) überführt und ein nicht bedingter Sprung zu
der symbolischen Adress-e IALFA (Fig. 10a) ausgeführt wird,
um die erste Anweisung des DBG-Programms zu interpretieren. Die Adresse 1700 entspricht dem Anfang der Zone B von ROM
(Fig. 9)· Es soll darauf hingewiesen werden, daß der Interpretationsteil ' ' auch das Bit 03 von CP 313 auf
Null gesetzt hat, so daß, wenn eine Rückkehr nach IALFA erfolgt, das Auslesen der Anweisungen durch ROM 2 und nicht
durch RAM 1 bewirkt wird.
Es soll außerdem daraufhingewiesen werden, daß der Interpretationsteil
ebenfalls das Bit 05 von CP 313» das zu der Anweisung
zur Fehlerbefreiung gehört, zu Null macht, da anderenfalls sich nach dem Start des DBG-Programms eine geschlossene
Schleife ergeben würde.
- 3k 5 09828/078 3
Tarsächlich würde der Interpretationsteil beim Ausführen
der ersten Anweisung des DBG-Programms bei der logischen Entscheidung 202 (Fig. 10a) die DBG-Unterbrechung eingeschaltet
finden, insoweit nämlich, als PI nicht verändert und das Bit 05 von GP = 1 ist. Infolgedessen würde dazu
HITTS springen und über die Blöcke 250 bis 284 (Fig. 10b
und 10c) wiederum zu der Adresse IALFA hin und nicht aus der genannten Schleife herausgelangen.
Schließlich führt der Interpretationsteil - zum Zeitpunkt wenn das Unterbrechungs-Programm in RAM 1 eingespeichert
wird (logische Entscheidung 182) - die Mikroanweisungen MAD1
AMD, MAD, TAB, MAD (Block 285 von Fig. 10c) aus, wodurch die Adresse, die in den dritten und vierten Bytes des Registers
(IPSR) 302 enthalten ist, in das Adressierregister L07 des ausgeführten Programms gelangt und darüber hinaus
das Byte GP 333 des Registers (IPSR) 302 in das Register (CP) 313 eingespeichert wird, um auf diese Weise in das Register
(PSR) 3OO die neuen Bedingungen des Unterbrechungs-Programms
einzugeben.
6. IPehlerbefreiungsprogramme
6.1 Benutzte Anweisungen
Es war bereits weiter oben ersichtlich, daß als Folge der Betätigung des Umschalters 100 oder der Erkennung einer vorher
reservierten STOP-Adresse das Bit 05 von PI 314 und das
Bit 03 von BSD auf "1" gesetzt werden. Darübei^hinaus wurde
gezeigt, daß wenn der Programmierer die DBG-Programme in ROM 2 eingespeichert hat, er dafür gesorgt hat, daß das Bit
01 des Bytes AI 334 von IPSR 302 auf "0" gesetzt wurde.
- 55 -
5098 2 8/0783
Schließlich wurde auch dargelegt, wie das gleichzeitige Vorliegen der eben genannten Bitzustände das Interpretations-Mikroprogramm
veranlasste, die Verarbeitung des ablaufenden Programms zu unterbrechen, seine signifikanten Parameter
festzuhalten und die Adresse "1700" von ROM 2 in den Programm-Adressierer
L07 einzugeben.
Diese Adresse ist die Adresse der Initialanweisung des DBG-Programms,
das in ROM 2 gespeichert ist.
Bevor die Beschreibung des DBG-Programms fortgesetzt werden
soll, ist es zweckmäßig, die Bedeutung der dafür benutzten
Anweisung zu erläutern.
Zunächst sollen diejenigen Schritte kurz erläutert werden,
die ausgeführt werden, um die Anweisungen durchzuführen.
Wie bereits gesehen, liest der Übersetzungsteil die beiden Bytes der Anweisung aus RAM 1 oder ROM 2. Aus dem Inhalt
dieser beiden Bytes erkennt der Interpretationsteil das zu der Anweisung gehörende Format, errechnet auf der Grundlage
des Formats die Adresse der Operanden, zieht die Operanden aus RAM 1 heraus und überführt sie in die Operationsregister
Β1Λ und BI5. Jetzt werden auf der Grundlage des Inhaltes des
Feldes F der Anweisung die Mikroprogramme, die die Anweisung
ausführen, aus ROM 2 herausgezogen. Am Ende dieses Vorgangs wird der Interpretationsteil angerufen und fährt mit dem Herausziehen
der nachfolgenden Anweisung fort.
6.2 Optische Anzeige der Anweisungen in den Registern 362
und 363
Das DBG-Programm, das in ROM 2 gespeichert ist, soll nun anhand
der Figuren 11a bis 1 ig beschrieben werden.
- 56 -
509828/078 3
Das DBG-Programm, das in ROM 2 aufgezeichnet ist, teilt sich
in eine Anzahl von Funk ti ons bloc ken B-IOO ,BO,B1,B2,B6 von
denen der erste B100 den anderen gemeinsam ist. Die anderen Blöcke BO,B1,B2,b6 können jedoch einzeln mittels der Tasten
S0,S1,S2 und S6, die in Fig. 1b zusammen mit 102 bezeichnet
sind, abgerufen werden.
Es soll klargestellt werden,daß die Tasten 102 (SO bis S6)
auch benutzt werden, wenn der Umschalter 100 sich in seiner Normalposition befindet. In diesem Fall nehmen sie alle eine
besondere Bedeutung an, die ihnen durch das"im Ablauf befindliche
Programm zugeordnet wird, Die Tasten SO und S6 können beispielsweise vom Programm als normales Ende der
Dateneingabe vom Tastenfeld 5 und WJBderaufnähme der Verarbeitung
unter Benutzung dieser Daten angesehen werden.,Die übrigen Tasten S1 bis S5 fügen zu diesen Datenblöcken zusätzliche
Information - über die normale Eingabe von Daten hinaus - hinzu, die vom Programmierer bestimmt wird.
Die Funktion der Anlage, wenn der Umschalter 100 in seiner
Normalposition ist, soll hier nicht beschrieben werden, sondern die Operationen, die mit den Tasten 102 zusammenhängen,
wenn der Umschalter 100 sich in seiner DBG-Position befindet.
Eine Beschreibung des ersten Blocks B100 des Programms, der
bei allen anderen Programmen derselbe ist, soll zunächst beschrieben werden. Dieser funktionale Block konserviert andere
Parameter des unterbrochenen Programmes, welche nicht in OPSR 301 enthalten sind und bereitet darüber hinaus die
optische Anzeige derjenigen Adresse und derjenigen Anweisung
vor, die im Augenblick der Unterbrechung ausgeführt werden sollte.
- 57 -
5 09828/0783
Im einzelnen wird mittels der beiden ersten Anweisungen TLD, 2 und YPB, 2 der Inhalt des Registers RB 310 nach 0160
(Block 400 Fig. 11a) gebracht. Der Inhalt des Arbeitsregisters 352 wird dann mittels einer Anweisung LAX (Block
401) in das Register 366 übertragen. Es soll bemerkt
v/erden, daß das Register 366 durch die Anweisung LAX als viertes Register (identifiziert durch das letzte Semibyte
der Anweisung), beginnend mit dem Basisregister RB 31O von
PSR 3OO» ia eiern die Adresse 0160 enthalten ist, adressiert
wird. .
Das Basisregister (RB) 310 wird dann mittels der Anweisungen
TL und YBP, 1 (Block 402) auf Null gesetzt. Danach werden mittels der Anweisungen TLD, 1, TLD, 2 und MVG die beiden
Bytes des Bedingungsregisters (RG) 359 in den Zellen 0188 und 0189 (Block 403) konserviert, die - wie gesagt - diejenigen
Bedingungen enthalten, die von der Bedienungsperson vor der DBG-Unterbrechung von außen eingegeben wurden. Diese
Bytes werden durch das DBG-Programm in das RG 359 zurückgebracht,
wenn das unterbrochene Programm nach der Ausführung des DBG-Programms wieder aufgenommen wird.
Es soll darauf hingewiesen werden, daß die Anweisung MVG
ein Feld von der Länge L+1 aus der Zelle, die durch die Summe der Inhalte von RB 310 und P1 311 adressiert wird beginnend
mit der Zelle, die durch die Summe der Inhalte der Register(P2) 312 und (RB) 310. L ist die Zahl, die im zweiten
Byte der Anweisung enthalten ist.
Anschließend wird mittels der Anweisungen AP1, AP2 und MVC
der Inhalt des Registers (AB) 370 (jAnsteuertasten) in die
Zelle 018A (Block 404) über.
- 58 50982 8/0783
Kittels der Anweisungen SP2, SP1 und MVC wird der Inhalt des
Registers (CI) 324 in die Zelle 0158 (Block 405) überführt.
Die beiden Bytes, welche die Absolutadresse für den Wiederbeginn
des unterbrochenen Programms (Register (IR) 327) angeben, werden mittels der Anweisungen AP2, SP1, MVC in die
Register (Pi) 311 von PSR 300 überführt. Danach wird diese
Adresse mittels der Anweisungen AP2 und LPD von P1 311 in
das Register 362 (Block 406) weitergegeben.
Durch die Anweisungen YBP, 2, SP2, TLD, 1 und MVC wird das Register (RB) auf den Wert 0160 gesetzt und der Inhalt des
Basisregisters (RB) 320 von OPSR 301 wird in das Register (P1) 311 von PSR 300 überführt. Anschließend wird der Inhalt
des Registers (RB) 320 mittels der Anweisungen AP2 und LPD1 an das Register 364 weitergegeben.
Der Unterschied zwischen den Inhalten der Register 364 und 362 wird mittels der Anweisung SR gebildet und das Ergebnis
wird in das Register 362 (Block 407) eingespeichert. Diese Differenz wird anschließend in das Register 363 durch eine
Anweisung LR (Block 408) überführt. Mittels der gerade beschriebenen Operationen wird in die Register 360 und 363 die
auszuführende relative Adresse des unterbrochenen Programms in hexadezimalem Code eingeschrieben.
Mittels der Anweisungen TL1 und TL2 werden die Register P1
311 bzw. P2 312 auf die Werte von 0000 und 0005 gesetzt, welche hinzugefügt zum Inhalt des Registers (RB) 310 die
Zellen 0160 bzw. 0165 adressieren.
Die Anweisung YTX, die vier Bytes (gekennzeichnet durch das
letzte Semibyte der Anweisung) aus dem Register (P2) 312
zerlegt und transcodiert sowie sie anschließend in acht Bytes (gekennzeichnet durch das dritte Semibyte der Anweisung) adressiert
durch das Register (P1) 311 durch Eliminierung
der nicht signifikanten Nullen (Block 409)- überführt, wird
anschließend ausgeführt.
509828/0783 - 5? -
Danach wird eine Anweisung MVI, 2 ausgeführt, welche durch
P2 312 adressiert wir.d und eine Leerstelle CRT in die Zelle
0165 (Block 410) einschreibt.
Mittels der Anweisungen YPB, 1, AP1 und AP2 sowie YTX wird
das Register (RB) 310 auf Null gesetzt und das Byte CP aus RAM 1 ausgelesen, zerlegt, transcodiert und in die
Zellen 0166 und 0167 (Block 411) in Fig. 11b übertragen.
Anschließend wird die Anweisung EIES ausgeführt, welche in
die Zelle 00E4 den Code, der durch das zweite Byte ausgedrückt
ist, einschreibt. Dieser Code ist "01000111" und jedes Bit gehört zu einer entsprechenden Taste 102 (Block
412). Im einzelnen wird dieser Code interpretiert als ein Code zum in Funktion/setzen der Tasten SO, S1, S2 und S6
mittels der Anweisung YOP, um festzustellen, ob die durch
den Programmierer betätigten Tasten eingeschaltet waren oder nicht.
Mittels der Anweisungen SP1, SP2 und MVC wird der Inhalt
des Registers (RB) 320 von OPSR 301 in das Register (P2) 312 von PSR (Block 413) übertragen. Der Inhalt von RB
von OPSR 301 wird mittels der Anweisungen AP1,. YPB1, LPD2
(Block 414) in das Register 364 überführt. Anschließend
wird der Inhalt des Registers 364 in Register 361 (Block 415) übertragen.
Die absolute Adresse der auszuführenden Anweisung des unterbrochenen
Programms wird im Register 364 mittels der Anxjeisungen
LR und AR (Block 416) errechnet. Es wird daran erinnert, daß der Inhalt des Registers 36.5 die relative
Adresse des unterbrochenen Programms war. Die absolute Adresse wird anschließend mittels der Anweisungen LR und
TRD (Block 416) in das Register 360 und das Register (P2) 312 übertragen. Das Register (RB) 310 wird mittels der Anweisungen
TL und YBPI auf Null gesetzt und der Inhalt der
50 9828/07 83
- 6ο. -
durch Ρ2 312 adressierten Zelle wird mittels der Anweisungen AP1 und MVC in die zweite Hälfte des Registers 363 übertragen.
Dieser Inhalt wird zerlegt und mittels der Anweisungen TLD2, TCP und YTX transcodiert, so daß im Register 363 die von dem
unterbrochenen Programm auszuführende Anweisung in zerlegtem Code (Block 417) festgehalten ist. Mittels der Anweisungen
SP1, SP2 und MVC wird das zweite Semibyte des Bytes CP, das
in der Zelle 0167 aufgezeichnet ist, um eine Zelle nach links verschoben, so daß dieses Semibyte jetzt in den beiden Zellen
0166 und 0167 vorhanden ist. Anschließend wird die Leerstelle CRT mittels der Anweisung MVI (Block 418) in die Zelle 0167
eingeschrieben.
Zusammenfassend gesagt sind durch die in den Blöcken 406 bis 418 durchgeführten Operationen in den Registern 362 und
in zerlegtem Code vorbereitet worden: Die relative Adresse der von dem unterbrochenen Programm auszuführenden Anweisung,
das zweite Semibyte des Bytes CP (das, unter anderem den Bedingungscode enthält), eine Leerstelle CRT und den Heximalcode
der bei dieser Adresse enthaltenen Anweisung. Ein Beispiel der Vorbereitung der Register 362 und 363 soll anhand der
Figuren 12a bis f behandelt werden.
Unter der Annahme, daß das Programm bei der absoluten Adresse 2423 - ausgedrückt in komprimiertem Hexadezimalcode - unterbrochen
worden ist, welche in das Register 362 (Block 406) überführt worden ist und dort in der komprimierten Form, wie in
Fig. 12 dargestellt, vorhanden ist, wobei das letzte Semibyte (Zeichen c) das positive Vorzeichen darstellt. Unter
der Annahme, daß darübeijhinaus der Inhalt von RB 320 von
OPSR 301 "1200" ist, wird dieser Inhalt in das Register (Block 407) überführt, wie er in der komprimierten Form in
Fig. 12a dargestellt ist. Es wird jetzt zwischen den Registern
364 und 362 die Differenz gebildet und das Ergebnis in Register 362 eingespeichert, wie Fig. 12b (Block 408) darge-
509828/0783 -61 _
stellt. Der Inhalt des Register 362 wird dann zerlegt (dekomprimiert) (Block 409) und nimmt daraufhin die ersten
fünf Bytes des Registers 362 (Fig. 2c) ein. Eine Leerstelle CRT wird dann in die Zelle 165 (Block 410) eingeführt und
das Byte CP 323 wird in dekomprimierter Form in die Zellen
0166 und 016? eingegeben. Es soll angenommen werden, daß
dieses Byte den Wert "4A" hat, wie er in Fig. 12e wiedergegeben
ist. Daraufhin wird die Anweisung, die durch das unterbrochene Programm ausgeführt werden sollte, gelesen
und in komprimierter' Form in die zweite Hälfte des Registers 363 überführt. Es soll angenommen werden, daß die Anweisung
den Code "59000005". hat, d.h., daß sie eine Anweisung TLD,
2 darstellt, mittels derer die Zahl "5" in den Zeiger (P2) 312 (Fig. 12b) eingespeichert wird. Diese Anweisung wird
daraufhin in das Register 363 in dekomprimierter Form neu
geschrieben (Fig. 12c und Block 417). Das Byte CP wird dann um eine Position nach links verschoben und eine Leerstelle CRT
in die Zelle 0167 (Block 418) eingeschrieben.
Die beiden Register 362 und 363 befinden sich kurz gesagt
in dem Zustand, wie er in Fig. 12d dargestellt ist.
Fig. 12f zeigt im einzelnen die Folge von Zuständen, die die Zellen 0166 und 0167 beim Übergang von der Konfiguration
nach Fig. 12c zu der von Fig. 12d einnehmen. Die in den Registern 363 und 364 vorbereitete Konfiguration wird anschließend
optisch angezeigt, wie es weiter unten noch dargestellt werden soll.
Die Beschreibung des DBG-Programmes soll nun. wieder aufgenommen
werden (Fig. 11b).
Mittels der Anweisungen SP2, YBP, 2 und TLD,1 wird das Register
(RB) 310 auf 0160 und das Register (P1) 311 in den Zustand 0010 (Block 419 in Fig. 11b) gesetzt. Anschließend
wird die Anweisung YOP ausgeführt (Blöcke 420· und 421 von
■ - 62 5098 28/0 78 3
Fig. 11c), welche der Anzeige 103 die in den Registern 362
und 363 vorhandenen Zeichen zuführt, die durch die Bedienungsperson
eingegebenen Daten in das Register 36h überführt und
der Bedingungscode entsprechend der Taste 102, die durch die Bedienungsperson betätigt wurde, gesetzt.
Die Anweisung YOP kann im wesentlichen als in drei funktionelle
Blöcke unterteilt angesehen Werdens Ein erster Block sorgt dafür, daß die durch die vorhergehende Anweisung in
die Register 362 und 363 eingespeicherte Information der
optischen Anzeigeeinheit 6 zugeführt wird, ein zweiter Block sorgt dafür, daß die über das Tastenfeld eingegebenen Daten
in das Register 364, welches durch den Zeiger (P1) 3I 1 angegeben
ist, gelangen und ein dritter Block bewirkt die Aufstellung des Bedingungscodes, der in dem Programm-Bedingungsbyte
313 enthalten ist, und des neunten Semibytes des Bedingungsregisters 359 ih Abhängigkeit von der betätigten Taste,
Der erste funktionelle Block ist ein Mikroprogramm, welches dia
Summe der Zeiger (P2) 312 and des Basisregisters (RB) 310
benutzt, um das erste Byte des Registers 362 zu adressieren,
so daß das Auslesen der sechzehn dem adressierten Byte folgenden Bytes eingeleitet wird.
Mittels geeigneter Mikroanweisungen überführt dieses Mikroprogramm
die Daten direkt in die ausgewählte periphere Einheit (über die Verbindung NC und die Kanallogik ^5).
In diesem'Fall wurde mittels der Anweisung YOP durch die Kanallogik
k5 die Anzeige 6 (Fig. Ib) ausgewählt, so daß die Daten,
die in den beiden Registern 362 und 363 enthalten sind, optisch
angezeigt werden. Die Art und V/eise, in der die Kanallogik k5
die Anzeige 6 auswählt, ist bereits erwähnt worden und darüber hinaus in der DT-OS 2 059 3^1 beschrieben. Darüber hinaus kann
diese Auswahl in jeder beliebigen Art und Weise vorgenommen werden, so daß auf eine aus-
509828/0783
- 63 -
führliche Beschreibung verzichtet werden kann, · . zumal kein Bereich
der vorliegenden Erfindung betroffen ist.
Der zweite Punktionsblock der Anweisung YOP ist ein Mikroprogramm,
welches die Summe des Zeigers (P1) 311 und RB 310 benutzt, um die erste Zelle des Registers 364- zu adressieren
und in den acht folgenden Bytes die über das Tastenfeld eingegebenen Daten einzuspeichern. Dieses Mikroprogramm benutzt
geeignete Mikroanweisungen,
welche den Datenaustausch mit der ausgewählten peripheren Einheit ermöglichen. Diese Daten werden mittels
des Tores 70 in Fig. 2b in die Verbindung ITD eingeführt, von
wo aus sie mittels der Verbindung ND in das Register B14
(Fig. 8) überführt werden. Die Einführung der Daten aus dem Bedienungsfeld 5 in das Register B14- wird durch eine Mikroanweisung
gesteuert, (nicht in Tabellen angegeben) welche die Befehle GZ03, CA02, CT06, CT07 und die Auswahlbefehle
CO32 bis CO39 erzeugt, die auf die Tore 70, 71, 72 bzw. 73
und die Auswahlschaltungen, die in Fig. 2 angegeben sind,
einwirken, woraufhin die Zeichen vom Tastenfeld 5 in das Register
B14- überführt werden. Diese Überführung wird hinsichtlich
der Bits parallel und hinsichtlich der Zeichen seriell vorgenommen, so daß die Zeichen eines nach dem anderen überführt
werden.
6.3 Tastenerkennung
Der dritte Funktionsblock soll nun anhand des Mikroprogramms,
das in Tabelle M dargestellt ist und des Flußdiagramms von
Fig. 13 beschrieben werden.
Wie bereits festgestellt, ist das letzte Zeichen vom Tastenfeld
5 mittels des zweiten Funktionsblockes (Block 600 in Fig. 13) in das Register B14· eingespeichert worden.
509828/0783
_ 64 - 2458851
Mittels der Mikroanweisung SDIB wird das Zeichen ORT, das
in B14 enthalten ist, mit demjenigen, das in den Schaltelementen (Register) 40 enthalten ist, ausgetauscht.
Anschließend werden die Bits 03 bis 07 des letzten CRT mittels der Anweisungen SAI)O und SADI, welche auf die Schaltelemente
D03 "bis D07 (logische Entscheidung 601 in Fig. 13)einwirken,
ermittelt.
Es soll darauf hingewiesen werden, daß, wenn die letzte Eingabe vom Tastenfeld eine Taste der Gruppe 102 oder die RUN-
7a
Tastendes Bedienungsfeldes 7 in das Register B14 ist, das festgehaltene Zeichen GRT die Konfiguration 10011XXX annimmt. Die Bits XXX geben eine Binärzahl von 0 bis 6 ab, die mit den Tasten 102 zusammenhängt, während die Zahl 7 auf die RUN-Taste hinweist.
Tastendes Bedienungsfeldes 7 in das Register B14 ist, das festgehaltene Zeichen GRT die Konfiguration 10011XXX annimmt. Die Bits XXX geben eine Binärzahl von 0 bis 6 ab, die mit den Tasten 102 zusammenhängt, während die Zahl 7 auf die RUN-Taste hinweist.
Wenn jedoch das letzte eingegebene Zeichen ein alphanumerisches
Zeichen ist, nimmt wenigstens eines der Bits 03 bis 07 eine Konfiguration an, die sich von 10011 unterscheidet,
so daß ein Sprung zu der Adresse IGOTEH ausgeführt wird. Das Mikroprogramm, das bei IGOTEH beginnt, ist eines,
das die Einführung der Zeichen des Registers 364 von RAM 1
bewirkt, d.h. es führt den vorgenannten zweiten funktioneilen Block aus.
\Jerm die Bits 03 bis 07 die Konfiguration 10011 haben, wird
die RUN-Taste, der 10011111 entspricht, mittels der Mikroanweisungen
GRTA, ORE und SADI erkannt, welche mit Hilfe einer "Schablone?1 ermitteln, ob der Inhalt der Register B14 gleich
10011111 (logische Entscheidung 602) ist. Wenn die Inhalte sich unterscheiden, gehört das CRT unzweifelhaft zu einer
Taste der Gruppe 102.
- 65 -
509828/0783
Mittels der Mikroanweisungen CRTA und ANDB werden die Bits
03 bis Ο? des Registers B14 auf Null gesetzt, während die
Bits OO bis 02, die rait XXX bezeichnet sind und binär die Zahl, die zu der betätigten'Taste 102 gehört, wiedergeben,
nicht verändert werden (Block 603)· Anschließend werden mittels der Mikroanweisungen ORTA, CRTB und SEDI die Operationsregister
AO9 = "00" und B02 = "0Ti vorbereitet und
das Schaltelement DOO auf eins gesetztiVMittels der Mikroanweisungen
SOT und SADI wird eine Kontrolle durchgeführt, um festzustellen, ob der Inhalt von B14 dem Inhalt von AO9
(logische Entscheidung 606 entspricht). Venn die beiden Register einen verschiedenen Inhalt haben, wird mittels der
Mikroanweisungen ICA und SHSB das Register A09 um eins heraufgesetzt und der Inhalt des Registers B02 um eine Position
nach links verschoben (Block 607). Anschließend wird durch den nicht bedingten Sprung SAI die Rückkehr nach Block
604 bewirkt und der Durchlauf der Blöcke 604, 606 und 607 wiederholt.
Dieser Zyklus wird so oft wiederholt, wie es der laufenden Nummer' der gedrückten Taste 102 entspricht.
V/enn beispielsweise die Taste S6 gedrückt worden ist, wird
dieser Umlauf siebenmal wiederholt,etc. Es wird darauf hingewiesen,
daß, wenn der Inhalt des Registers B14 dem des Registers AO9 entspricht, das anfangs in die erste Stelle des
Registers B02 eingespeicherte "1"-Bit um soviele Plätze nach links verschoben worden ist, wie Zyklen durchgeführt worden
sind. In dem dargestellten Beispiel ist das "1"-Bit in der siebten Stelle des Registers 302 aufgezeichnet, d.h., daß
das in 302 befindliche Byte gleich 0100 0000 ist.
Wenn 314 = A09 ist, wird mittels der Mikroanweisungen MAD,
AlTD und SADI eine Prüfung durchgeführt, ob die gedruckte Taste
durch das Programm eingeschaltet ist (logische Entscheidung
608). Wie bereits dargestellt, hat das DBG-Programm die Position 00Ξ4- von RAM 1 (Register 370 in Fig. 9) mit einem
Tasteneinschaltbit b.elegt, bei dem die im "1"-Pegel befindlichen Bits die eingeschalteten Tasten bezeichnen.
509828/0 783
Im einzelnen sind die Tasten SO, S1, S2 und S6 eingeschaltet
(Block 412 in Fig. 11b), so daß das Byte 01000111 in der Position 00E4 von RAM 1 vorhanden ist.
Ss wird deshalb mittels einer Mikroanweisung AND eine Überprüfung
durchgeführt, ob ein "1"-Bit in derjenigen Position des Registers 370 vorhanden ist, die der oben genannten Taste
entspricht, d.h., daß kontrolliert.wird, ob diese Taste betätigt
ist. In dem dargestellten Beispiel ist ein "1"-Bit sowohl in der sechsten Position des Registers B02 als auch
in der sechsten Position des Registers 570 vorhanden.
Für den Fall, daß keine Taste betätigt worden ist, würde ein Sprung zu der Adresse IGOTAJ ausgeführfvBei dieser Adresse
ist die Eingangsmikroanweisung des Mikroprogramms, das die Operationeöl^llche auf die Betätigung einer nicht durchgeschalteten
Taste hinjfolgen, festgehalten. Dies kann beispielsweise das Aufleuchten einer Lampe im Bedienungsfeld 7 und
aas Abwarten einer neuen Anweisung sein. Ein derartiges Mikroprogramm soll hier nicht beschrieben werden, da es nicht
einen Teil der Erfindung darstellt.
Venn die durch die Bedienungsperson betätigte Taste durch das EBG-Programm eingeschaltet war, wird die Mikroanweisung
MAD ausgeführt und überführt das fünfte Byte des Bedingungsre^isters
(RG) 359, das in der Zolle ÖÖG3 vorhanden ist, zu
den Operationsregister A02. Wie bereits gesagt, worden dort
von rechts her die Seiaibytes der achten und neunten Position
von RO 359 festgehalten. Die neunte Position enthält den Code
der zuletzt gedrückten Taste, der vorher gleichfalls in der Zelle 0188 (Register 365) festgehalten war, wie es anhand
von 31ock 403 in Fig. TIa beschrieben worden ist.
Anschließend wird eine Mikroanweisung AZAP ausgeführt, welche
die Bits der Position 9 von RG auf Null setzt.
- 67 509828/0783
Kittels der Mikroanweisungen TAB und ROTB wird der Code
der gedrückten T ste, der nach, dem Austausch der Semibytes A09 vorliegt, in das Register B02 überführt.
In dein behandelten Beispiel (Betätigung der Taste S6) lag
im Register A09 das Byte 00000110 vor, so diß jetzt in Register
B02 das Byte 0110 0000 vorhanden ist.
Durch die Mikroanweisung ÖRA wird mit den Inhalten der Register
A02 und B02 die Oder-Funktion gebildet und das Ergebnis
in das Register A02 überführt. Auf diese Weise wird in das erste Semibyte des Registers A02 der Binärcode der
betätigten Taste und in das zweite Semibyte der unveränderte
Inhalt der achten Position von RC 359 eingegeben.
Schließlich wird mittels der Mikroanweisung AMD der Binärcode
der betätigten Taste in der neunten Position von RC 359 wieder hergestellt, während die achte Position unverändert
wieder eingeschrieben wird. Diese Anweisungen werden kurz im Block 609 von Fig. 13 angegeben.
Für den Fall, daß die betätigte Taste die RUN-Taste 7a ist,
wird ein Sprung zu der Adresse IGOTUX vorgenommen, bei der das Zeichen 0000 1001 mittels der Mikroanweisung CRTA (Block
6^0) in das Register A09 eingeschrieben wird. Dieses Zeichen
entspricht der RUN-Taste und mittels eines nicht bedingten Sprungs SAI zu der Adresse IGOTUY (Block 609) wird die Aufzeichnung
des Zeichens "1001" in der neunten Position von RC 359 vorgenommen, wie es bereits entsprechend für die
anderen"Tasten beschrieben worden ist. In jedem Fall wird
nach der Mikroanweisung AMD in Block 6Q9 mittels der Mikroanweisungen
CRTB und ORE eine Kontrolle durchgeführt, ob der Inhalt des Registers A09 gleich dem Zeichen "06" ist,
\tfelches die Taste S6 identifiziert (logische Entscheidung
611).
- 68' -
509828/078 3
Wenn dieses Ergebnis negativ ist, wird mittels der Mikroanweisungen
GRTB, SEDI und SOT eine Kontrolle durchgeführt um festzustellen, ob der Inhalt des Registers A09 gleich
oder größer als zwei ist, d.h., ob die Tasten SO oder S1 gedrückt sind oder die verbleibende eingeschaltete Taste
S2 (logische Entscheidung 612).
Unter der Annahme, daß die gedruckte Taste SO oder S1 ist,
enthält das Register A09 die Bytes 0000 0000 oder 0000 0001. Mittels der Mikroanweisungen MAD, CRTB und ANDB wird das
Byte (CP) 313 aus der Adresse 00B6 herausgezogen und die
beiden letzten signifikanten Bits, die dem Bedingungscode entsprechen, werden auf Full gesetzt.
Das auf diese Weise modifizierte Byte CP wird anschließend in das Register B02 eingegeben.
Anschließend wird mittels der Mikroanweisungen ORA und AMD das Byte (CP) 313 in die Zelle 00B6 eingeschrieben, wobei
die letzten signifikanten Bits dieses Bytes 00 oder 01 enthalten, jejnachdem, ob die Taste SO oder S1 betätigt ist.
Diese Operationen werden durch Block 613 wiedergegeben.
Wenn auf der anderen Seite die Taste S6 betätigt wurde (logische Entscheidung 611) oder die Taste S2 (logische Entscheidung
612) wird ein Sprung zu der Adresse IG0TU6 bzw. zu der Adresse IG0TU7 durchgeführt. In beiden Fällen wird
die Mikroanweisung CRTA ausgeführt (Blöcke 614· und 615)· Sie
überführt die Zeichen 0000 0010 bzw. 0000 0011 in das Register
A09- Anschließend wird in beiden Fällen ein nicht bedingter Sprung zu der Adresse IG0TU8 ausgeführt, von wo
aus diejenigen Mikroanweisungen, die schon im Zusammenhang mit Block 613 beschrieben wurden, ausgeführt werden.
Anschließend wird ein Sprung zu der Adresse IALFA ausgeführt
um die Erkennung der nachfolgenden Anweisung mittels des Übersetzer-Mikroprogramms durchzuführen, wie es bereits erklärt
worden ist.
5098 2 8/0783
also
Zuri Abschluß istMiargestellt worden, wie der dritte Funktio-3-block der Anweisung" YOP die Position 9 von RG 359 mit" dec Code der betätigten Taste versieht und wie es den Bedingungscode bei 00 setzt, wenn die Taste SO betätigt worden ist, bei 01 für die Taste S1, bei 02 für die Taste S6 und bei 03 für die Taste 32 und die RUN-Taste 7a.
Zuri Abschluß istMiargestellt worden, wie der dritte Funktio-3-block der Anweisung" YOP die Position 9 von RG 359 mit" dec Code der betätigten Taste versieht und wie es den Bedingungscode bei 00 setzt, wenn die Taste SO betätigt worden ist, bei 01 für die Taste S1, bei 02 für die Taste S6 und bei 03 für die Taste 32 und die RUN-Taste 7a.
Die Arbeitsweise der drei Funktionsblöcke der Anweisung YOP,
die eben beschrieben wurde, wird symbolisch durch die Blöcke 420, 421 und 422 in Fig. 11c wiedergegeben.
Die Beschreibung des DBG-Programms soll nun anhand
der Fig. 11c wieder aufgenommen werden. Nach der Ausführung der Anweisung YOP wird der Bedingungscode mittels
dreier "bedingter Sprunganweisungen BDO (logische Entscheidung
422, 423 und 424) analysiert.
Eiö Operationen, die zu den Tasten SO, S1 und S6 gehören,
sollen, zunächst kurz gestreift und später ausführlich erläutert
werden.
die Taste SO betätigt wurde, liegt GO - 0 vor, so daß
ein Sprung zu der Adresse 17AE vorgenommen wird, bei der das Speiche rl esepr'ogramm aufgezeichnet ist, das die optische Anzeige
derjenigen Anwei sung f-~aie der bereits durch die Anweisung
YOP optisch angezeigten folgt, oder, für den Fall, daß
die Bedienungsperson über das Tastenfeld eine Zahl eingegeben hat, wird diejenige Anweisung optisch dargestellt, die bei
derjenigen Adresse festgehalten ist, die durch die eingegebene Zahl, vermehrt um den Inhalt von RB 310 angegeben wird.
MQTJi über das Tastenfeld eine Zahl eingegeben wurde und die
2ä£*6 31 betätigt worden ist (OG = 1), so wird ein Sprung
zu der Adresse 17C4 ausgeführt, bei der ein Programm festgehalten
ist, welches die Unterbrechung der Verarbeitung des
- 70 509828/078 3
zu korrigierenden Programmes "bei der Adresse von RAM 1, die
durch die eingegebene Zahl, vergrößert um den Inhalt von EB 320, vorbereitet.
Wenn schließlich die Zahl für eine hexadezimale Basis (D-F) von 8 Zeichen eingegeben und die· Taste S6 betätigt worden
ist (CG = 3)> so wird ein Sprung zu der Adresse 17EE ausgeführt,
bei der ein Programm aufgezeichnet ist, welches bei der auf der Anzeige 6 optisch dargestellten Speicheradresse
diejenige Anweisung oder Daten festhält, welche über das Tastenfeld eingegeben wurden und optisch den Inhalt des Feldes,
das bei der um vier heraufgesetzten optisch angezeigten Adresse festgehalten ist,
wodurch es gestattet ist, in RAM 1 sequenziell einzuschreiben.
Auf diese Weise kann jede Anweisung des zu korrigierenden Programmes modifiziert werden.
6.4 Programm zum Eingeben mit Magnetkarte (Block B2 von DBG)
Jetzt soll der Fall behandelt werden, bei dem die Taste S2
oder die RUIT-Taste 7a betätigt worden ist.
Mittels der Anweisung YBP2 wird das Basisregister (RB) 310
auf Null gesetzt und der Inhalt von Position 9 des Bedingungsregisters 359 mit der Konstanten "1101" mittels einer Anweisung
MIG verglichen. Wie gesagt, ist in Position 9 des Bediiisungsregisters
vorher der Binärcode der betätigten Taste eingespeichert worden. Der zu der RUN-Taste- gehörige Code ist
"1001". Die Anweisung NIC setzt den Bedingungscode auf Null, wenn die Und-Funktion Null ergibt, setzt sie aber auf eins,
wenn sich die Und-Funktion von Null unterscheidet. Wennsich 1001 (RUIT-Taste) in der Position 9 des Bedingungsregisters 359
befindet, so ist die Und-Funktion von Null verschieden, so
- 71 -
509828/078 3
- 7i -
daß CG = 1 ist. Wenn dagegen 0010 festgehalten ist (Taste 32) ist die Und-Funktion Null und GC » 0 (Block 426 von
Pig. 11c).
Mittels der Anweisung FO (logische Entscheidung 427) wird
eine Kontrolle durchgeführt, um festzustellen, ob CC =0. Wenn CC = 0, d.h. wenn die Taste S2 betätigt worden ist,
wird die nachfolgende Anweisung abgeschnitten und mit der Anweisung TLD1 weiter gemacht, welche dem Programm "Einführung
eines DBG-Programms von einer Magnetkarte und sofortige Ausführung" entspricht.
Wenn auf der anderen Seite CC = 1 ist, wird mittels der Anweisung
BD ein Sprung zu der Adresse 180C durchgeführt, bei der ein Programm aufgezeichnet ist, welches die Ausführung
des unterbrochenen Programms wieder aufnimmt, d.h. es überführt den Inhalt des Registers (OPSR) 301 in das
Register (PSR) 300.
Im Falle der Betätigung der Taste S2 wird die Anweisung
TLD, 1 ausgeführt, dazu die Adresse 018C in das Register (P1) 311 eingeschrieben und mittels der Anweisung SP2 die
Adresse 00BE in das· Register (P2) 312.. Anschließend werden
mittels der Anweisung MVC zwei Bytes aus 00BE zu der Adresse 018C überführt. Auf diese Weise wird in der zweiten Hälfte
des Registers 367 (Fig. 9) die Adresse des Unterbrechungsprogramms, das im Register (IPSR) 302 aufgezeichnet ist,
(Block 4-28 von Fig. 11c) festgehalten.
Die Anweisung AP2 wird anschließend ausgeführt und schreibt
die Adresse 0150 in das Register (P2) 312 ein. Mittels der
nachfolgenden Anweisung STIO wird der Inhalt der Magnetkarte 9 (Fig. 1b) in die Register 360 bis 367 überführt.
- 72 -
509828/0 78 3
.72. 2458851
Die Anweisung STIO kann als in'zwei Funktionsblocke unterteilt
angenommen werden. Der erste Block setzt in das Register
360 acht Zeichen, welche die angewählte periphere Sinneit kennzeichnen, die Art der übertragung (Lesen oder
Schreiben), die Adresse von RAM 1, bei der die Daten ein- oder ausgelesen werden sollen, sowie die Länge des von der
überführung betroffenen Feldes (maximal 64 Bytes). Diese Zeichen v/erden durch die Kanallogik 45 benutzt, um die Überführung
zu steuern (Block 429).
Der zweite Funktionsblock sorgt für die Überführung und die Kontrolle der Korrektheit der erhaltenen Daten in bekannter
"./aise (Block 430), wobei der Zeiger P2 als Adressierer von
RAK 1 benutzt wird. Anschließend wild die Anweisung LAG ausgeführt,
welche den Start des aufgezeichneten Mikroprogramms in der Weise bewirkt .
Die erste Mikroanweisung dieses Mikroprogramms ist die Mikroanweisung
MAD, welche in das Register A14 das Byte CP 313
überfährt, das bei der Adresse 00B6 vorhanden ist. Anschließend wird mittels der Mikroanweisungen TADI und SADI
das 3it 03 von GP 313 getestet, welches, wie bereits dargestellt
(Fig. 9a), angibt, ob die zu lesende Anweisung in RiIM 1 oder ROM 2 vorhanden ist. Diese Kontrolle ist notwendig,
da die Anweisung LAG eine Länge von 4 Bytes hat,
so daß sie in zwei aufeinanderfolgenden Stufen gelesen werden muß. Während der ersten Stufe werden die beiden
Bytes in die Register B14 und B15 überführt. Wie bereits
in dem den Übersetzer betreffenden Kapitel behandelt worden ist, sind das die Bytes "AB" bzw. "88". Während der
zweiten Stufe werden das dritte und vierte Byte, das sind "01" und "50"ι ausgelesen. In dem Falle eines DBG-Programms
wird die Anweisung LAG in ROM 2 eingespeichert, woraufhin
- 73 -
509828/0783
es notwendig wird, das Register L02 mit der Programraadre.sse, die im Register LO7 (Fig. 8) vorhanden ist, zu versehen. Das
wird mittels der Mikroanweisungen SLL und SAB bewirkt.
Schließlich werden mittels der Mikroanweisungen ROMA und TAB das dritte und vierte Byte der Anweisung - das ist "0150" in
das Register L11 (Fig. 8) überführt. Pur den Fall, daß
die Anweisung LAG zu einem Programm gehört, das sich in RAM 1 befindet, würde ein Sprung nach der Adresse IPSRO ausgeführt,
so daß die Mikroanweisungen MAIP und MBI, die durch das Register LO? adressiert werden, ausgeführt würde. In jedem
.Fall ist die Adresse "0150" in dem Register L11 festgehalten.
Die Mikroanweisung SLL wird anschließend ausgeführt,
wodurch die Adresse "0150" in den Programmadressierer L07
überführt wird. Anschließend wird mittels der Mikroanweisungen T3A und AMD das Byte, das in dem Register 314 vorhanden
ist - das ist das Byte "83" - welches, im hexadezimalbiiiärea
Code die Konfiguration "10001000" annimmt - in das Register (GP) 3^3 überführt. 3ine nicht bedingte Sprunganr
veisur..3 vird dann zu der Adresse IALS1A von ROM 2 ausgeführt,
wo die erste Mikroanweisung des Interpretations-Mikroprogr^rriTiS
(Fig. 10a) vorhanden ist.
Die tirade aufgeführten Operationen sind symbolisch durch den
Block 4-31 in Fig. 11c dargestellt. Zusammenfassend gesagt, befindet sich am Ende der Anweisung LAC das Byte 10001000 im
Rerister (GP) 3^3 und die Adresse "0150" im Programm-Adressierer.
■ ■ " .
Das heiiiii, daß wenn der Interpretationsteil die logische Entscheidung
20? (Fig. 10a) erreicht, wird er nicht den Sprung nach IIXTE (Block 250) ausführen, da das Bit 05 des Bytes GP
(10001000) sich im "O"-Zustand befindet. Wenn der Interpreta-
509 828/078 3 BAD ORIGINAL
tionstsil dann die logische Entscheidung 204 erreicht, wird
er ciaG 3it 03 von GP im 1-Zustand finden, so daß er das Auslesen
aus RAM 1 (Block 025) bei der durch das Register L07 angegebenen Adresse - das ist "0150" - ausführen wird.
Bei dieser Adresse ist durch die Anweisung STIO (Block 431) die erste Anweisung des Magnetkarten-Programms - wie bereits
dargestellt - in den Registern 360 "bis 567 festgehalten. Die
letzteren sind in Zellen von RAM 1 zwischen 0150 und 0-181?
(Fig. 9) zugeteilt. Das Magnetkartenprogramm wird anschließend wie jedes andere in RAM 1 vorhandene Programm ausgeführt.
Es soll darauf hingewiesen werden, daß durch einfaches Setzen des Bytes "88" in das Register (GP) 313 es möglich ist, im
Verlaufe der Ausführung den Programmträger zu wechseln. Es wurde tatsächlich ein Sprung ausgeführt vom Auslegen
aus ROM 2, in dem die DBG-Programme aufgezeichnet sind, zum Auslesen von RAM 1(in dem das auf der Magnetkarte 9 aufgezeichnete
Programm vorhanden ist.
O-*
Las Kcgnetkartenprogramm kann ein beliebiges DBG-Programm
(mit einer maximalen Länge entsprechend 64 Bytes) sein, das sich von denjenigen in ROM 2 unterscheidet. Der Programmierer
hat daher einen Satz von Magnetkarten zu seiner Verfügung, auf dein soviele DBG-Programme vorhanden sind, wie sie von
ihva gebraucht werden. Das können sowohl Programme sein, die Susannen mit dem erfindungsgemäßen System geliefert werden
oder auch Programme, die vom Programmierer selbst aufgestellt;
wurden, um besondere Probleme zu lösen, die mit der von ihn benutzten Prograramart verbunden sind. Fehlerbefreiuu-jrprogramme,
die beispielsweise für Kontenführungsprogramme £:-.;1f„chb sind, werden sich von solchen Fehlerbefreiungsprocrr..;~en
unterscheiden, die zu wissenschaftlichen Problemen gcioren.
- 75 -5 0 9 8 2 8/0783
BADOFIiGlNAL
Es soll darauf hingewiesen werden, daß die auf den Magnetkarten
vorhandenen Programme derart beschaffen sein müssen, daß sie beim Ende ihrer Ausführung diejenigen Parameter des
Programms zur Verfügung stellen , welche anschließend aktiviert werden.
Ia einzelnen können drei Fälle auftreten:
a) Das Programm, in das nach dem DBG-Programm der Einstieg
erfolgt, ist das vorher unterbrochene Programm (getestetes
-Programm),
b) das Programm, in das der Einstieg erfolgt, ist ein anderes
D3G-Programm und
c) das Programm, in das der Einstieg erfolgt, ist durch ein weiteres
Magnetkartenprogramm festgelegt bzw. das Magnetkartenprogramm
schließt die Fehlerbefreiung· ab.
In den Fallen a) und b) kann bei dem Ausführungsbeispiel das
Magnetkartenprogramm nicht langer als 48 Bytes sein, um nicht die Register 366 und 367 zu belegen, welche - wie gesagt Parameter
enthalten, die zusammen mit denjenigen, die im Register (OPSR) 301 vorhanden sind, für die Wiederaufnahme
des unterbrochenen Programms notwendig sind. Dieses Programm kann das getestete Programm sein (Fall a)) oder das DBG-Programm
(Fall b)).
Im Fall c) dagegen kann das Magnetkartenprogramm eine Länge
von bis zu 64 Bytes haben, da die in den Registern 366 und
36? aufgezeichneten Daten nicht das folgende Programm bestimmen.
Fall c) tritt beispielsweise auf, wenn der Programmierer ein
DBG-Programm von einer Länge von mehr als 64 Bytes benutzen. muß.
509828/0783 - 76 -
In diesem Fall muß der Programmierer auf einer Magnetkarte ein Programm mit der Länge von höchstens 64 Bytes aufstellen,
welches die folgenden Funktionen ausführt:
1) Überführung einer Zone des Speichers RAM 1, die durch den Programmierer bestimmt wird, zu einem externen Datenträger,
beispielsweise einem Magnetplattenspeicher,
2) Einführung eines Programms, das auf einem externen Speicher vorhanden ist (Magnetkarten oder Magnetband) in die soeben
frei-gemachte Zone und
3) Setzen des Programm-Bedingungsbytes 313 mit dem Bit 05 von
GP auf den 1-Pegel (Lesen aus RAM) und den Programmadressierer
L07 mit der Adresse der ersten Anweisung des eingespeicherten Programms. Diese letzte Operation wird durch
eine einzige Anweisung LAC ausgeführt.
Von jetzt ab führt das eingespeicherte Programm seine diagnostischen
Funktionen in Bezug auf das Programm in den verbleibenden Teilen von RAM 1 durch. Auf diese Art und Weise ist
es möglich, DBG-Programme von einiger Komplexität - und daher
Länge - durchzuführen, ohne das zu testende in RAM 1 enthaltene Programm zu beeinflussen.
Es soll angenommen werden, daß das zu testende Programm und seine'Daten die freie Zone von RAM 1 vollständig einnehmen
und daß es so nicht möglich ist, ein DBG-Programm selbst
kleinster Größe einzugeben. In diesem Fall wäre es nicht möglich, ein DBG-Programm einzugeben, ohne nicht wenigstens teilweise
das zu testende Programm zu zerstören und es wäre dann auch nicht möglich, diese beiden Programme abwechselnd in
Funktion zu setzen. Infolgedessen wäre es notwendig - wie bereits in der Einleitung erwähnt - daß der Programmierer das
509828/0783
Programm auf einer Anlage testen müßte, deren Kapazität so groß
ist, daß sie das zu testende Programm und die DBG-Prograrame
gleichzeitig aufnehmen kann. ·
Mittels des erfindungsgemäßen Systems ist es aber möglich, durch einfaches Setzen des Umschalters 100 in die DBG-Position,
Einführen einer Magnetkarte 9 in den Magnetkartenleser 9' und Betätigung der Taste S2 die Batenverarbeitungsanlage
in die Fehlerbefreiungs-Stellung zu bringen und das auf der
in
Magnetkarte enthaltene Programm die Register 360 bis 367 bzw. 360 bis 365 einzuspeichern.
Magnetkarte enthaltene Programm die Register 360 bis 367 bzw. 360 bis 365 einzuspeichern.
Diese Operation betrifft nicht die freie Speicherzone und infolgedesseir^Uas
zu testende Programm. Von ,jetzt an wird wie
dargestellt - das von der Magnetkarte eingegebene Programm aucgeführt.
Im einzelnen soll angenommen werden, daß das Magnetkartenprogramm
einen Teil des Speicherinhalts, der das zu testende Programm betrifft, beispielsweise die zweite Hälfte, zu einem
externen Träger überführt. Darüber hinaus soll angenommen werden, daß es in diese Zone ein DBG-Programm einführt, .
welches in der Lage ist, die erste Hälfte des zu testenden Programmes, die sich in RAM 1 befindet, abzuwickeln. Durch
Betätigung des Umschalters 100 kann man die beiden Programme abwechselnd arbeiten lassen. Das DBG-Programm führt dann die
diagnostischen Verarbeitungsoperationen aus und liefert als Ergebnis, beispielsweise in ausgedruckter Form, die Fehler,
die beider Aufstellung des getesteten Programms gemacht wurden. Das DBG-Programm ist darüber hinaus so aufgestellt, daß erkannt.,
wird, ob in RAM 1 sich keine weiteren Anweisungen des
zu testenden Programms, die überprüft werden müssen, mehr befindet.
- 78 -
509828/0783
- 7a -
An dieser Stelle sorgt das DBG-Programm dafür, daß der kontrollierte
und korrigierte Teil des zu testenden Programms dem externen Träger zugeführt wird, um an seiner Stelle die
zweite Hälfte des zu testenden Programms einzuspeichern, die vorher dem externen Träger zugeführt worden war.
Die zweite Hälfte des zu testenden Programms wird anschließend überprüft und das Ergebnis dieser überprüfung wird entsprechend
- wie eben erwähnt - ausgedruckt.
Anschließend ist der Programmierer in der Lage, die Anweisungen entsprechend der Überprüfung durch das DBG-Programm
zu korrigieren und das korrigierte Programm wieder in RAM 1 einzugeben. Der Programmierer befiehlt anschließend die Ausführung
des auf diese Weise korrigierten Programms. Aus dem Gesagten war bereits zu ersehen, wie der Programmierer unter
Benutzung des erfindungsgemäßen Fehlerbefreiungsprogramms die Möglichkeit hat, selbst komplizierte Überprüfungen vorzunehmen,
ohne das zu testende Programm zu beeinflussen.
Uie dargestellt, können bei dem erfindungsgemäßen DBG-System
darüber hinaus die bereits in ROM 2 befindlichen DBG-Programme
durch einfaches Betätigen des Umschalters 100 und einer der Tasten 102 (SO, S1, S6) abgerufen werden.
6.> Lesen RAM 1 Block BO (Taste SO)
Im einzelnen wird nach Beendigung der Eingabe über das Tastenfeld mit der Betätigung 'der Taste SO (logische Entscheidung
A-?3, Fig. 1.1c) ein Sprung zu der Adresse 17AE ausgeführt.
Bei dieser Adresse ist die Anweisung AP, 1 vorhanden, welche die Adresse 00C7 in das Register (P1) 31.1 eingibt. Anschließend
wird eine Anweisung-YBP, 1 ausgeführt, welche die Adresse
- 79 509828/0783
00C7 in das Register (KB) 310 eingibt. Das Bit 02 des Bytes (BSD) 351 wird mittels der Anweisung NI (Block 435 in Fig.
11d) auf Null gesetzt. Anschließend wird mittels der Anweisungen YBP, 1 und SP, 1 das Basisregister (RB) 310 auf 0160
und das Register P1 auf 0010 (Block 436) gesetzt. Mittels der Anweisung CBI, 1 wird anschließend eine Kontrolle durchgeführt,
um festzustellen, ob Daten in das Register 364 (logische Entscheidung-437) übertragen worden sind. Wenn
Daten vom Tastenfeld eingegeben worden sind, wird ein Sprung zu der Adresse.1704 ausgeführt, andernfalls wird die Anweisung
ARI durchgeführt, welche die Konstante 4 dem Inhalt des Registers 365 (Block 438) hinzuzählt. Wie bereits dargestellt,
enthält dieses Register die relative Adresse des unterbrochenen
Programms (Block 408 in Fig. Ha). Die auf diese Weise modifizierte Adresse wird anschließend mittels
der Anweisung LR in das Register 362 überführt und ein nicht bedingter Sprung wird zu der Adresse 173E (Block 409 in Fig.
11a) ausgeführt. Wie bereits dargestellt, beginnt von Block
409 an die optische Anzeige der Anweisung, die bei der in das Register 362 eingegebenen Adresse vorhanden ist.
In diesem Fall werden die beiden Bytes, die der vorher dargestellten
Anweisung folgen, optisch angezeigt. Daher können durch die Betätigung des Umschalters 100 und der Taste SO
die Anweisungen des zu korrigierenden Programmes eine nach der anderen auf der Anzeigeeinheit 7 optisch dargestellt
werden.
\lenn auf der anderen Seite die Betätigung der Taste SO die
Eingabe einer Adresse (logische Entscheidung 437) vorangegangen
ist, oder eine Eingabe vom Tastenfeld durch die Betätigung
der Taste S1 (logische Entscheidung 424 in Fig. 11c) beendet worden ist, wird ein Sprung zu der Adresse
1704 ausgeführt. Der Inhalt des Registers 364, der die über
das Tastenfeld eingegebene Adresse (Block 421 in Fig. 11c) enthält, wird komprimiert und in das Register 362 übertragen.
Diese Operationen werden durch den Block 439 in Fig. 11e
wiedergegeben.
509828/0783
. - 80 -
BAD ORIGINAL
Anschließend wird mittels der Anweisungen NIG und BD eine
Überprüfung durchgeführt, um festzustellen, ob die betätigte Taste SO oder S1 war. Das wird durch die■Bildung der Und-Funktjion
mit der Position 9 des Bedingungsregisters 3^-9,
die vorher entsprechend der betätigten Taste (Fig. 13) eingegeben
wurde, und der Konstanten 1101 (Block 44-0) bewerkstelligt. Darauf/hin werden die beschriebenen Operationen
ausgeführt, beginnend mit Block 408 in Fig. 11a, das heißt, daß die Anweisung, deren Adresse ü"b>.-r · Tastenfeld 5 eingegeben
wurde und nun im Register 362 (Block 439 in Fig.
He) enthalten ist, optisch dargestellt wird. Zusammenfassend gesagt, wird, wenn eine Adresse über das Bstenfeld 5 eingegeben
wurde und die Taste SO betätigt wird, die bei der eingegebenen Adresse enthaltene Anweisung optisch dargestellt.
6.6 STOP-Reservierungs-Biock Bi (Taste S1)
Wenn andererseits die Taste S1 betätigt wurde, wird das Register
(RB) mittels der Anweisungen TLD, 2 und YBP auf 0158
gesetzt. Anschließend wird die Summe (AR) der Inhalte der Rogisoer 361 und 362 gebildet, deren Ergebnis in das Register
361 (Block 442) eingespeichert wird. Wie es bereits
anhand von Block 415 in Fig. 11b erklärt worden.ist, enthält
das Register 36i das Basisregister (RB) 320 des unterbrochenen
Programms, während das Register 362 (Block 439) die relative
Adresse, die über das Tastenfeld 5 eingegeben wurde. Deshalb wird mittels der beschriebenen Operationen durch den Block
442 in Register 361 die absolute Adresse des unterbrochenen Prcgramas eingeschrieben, die durch den Programmierer über
das Tastenfeld ausgewählt wurde.
Ilittels einer Anweisung CVB wird die absolute Adresse aus
der binären Form in die dezimale umkodiert und in das erste und zweite Byte des Registers 361 (Block 443) überführt.
509828/0783 . - 8» -
BAD ORIGINAL
Diese Adresse wird in das Register (is) 350 durch die Anweisungen
SP,2; TLD; 1, YBP, 1; TLD, 1 (Block kkk) überführt.
Mittels der Anweisung 0I-,AP2; YBP1; BD wird das Bit 02 des
Bytes (BSD) 351 auf 1 eingesetzt und anschließend wird die
Adresse φΛ6φ in das Register (RB) 310 eingegeben und ein nicht
bedingter Sprung zu der Adresse 17BE (Block ^38 in Fig. 1Id)
ausgeführt. Von jetzt an werden die Operationen, die bereits anhand des Blockes 438 (Fig. ITd) kO9 und der folgenden (Fig.11a,
11b und 11c) beschrieben worden sind ausgeführt, so daß die
vorher optisch angezeigte Anweisung auf der Anzeigeeinheit 6 verbleibt. Es ist dargestellt worden, daß wenn der Programmierer
eine relative Adresse über das Tastenfeld 5 eingibt und anschließend die Taste S1 betätigt, die absolute Adresse, die der
eingegebenen entspricht, automatisch in das Register (IS) 350 eingeschrieben .und das Bit 02 von BSD 351 in den binären M1"-Zustand
gesetzt wird. Wie bereits beschrieben, werden diese Daten vom Interpretations-Mikroprogramm benutzt, um am Anfang
der Phase ALFA jeder Mikrοanweisung zu prüfen, ob die Adresse
der fortgeschrittenen Anweisung gleich der reservierten ist
(logische Entscheidungen 258 und 262 in Fig. 10b).
Nach dem Reservieren der STOP-Adresse setzt der Programmierer den Umschalter 100 zurück in seine Normalposition und betätigt
die RUN-Taste 7a oder einen Rückschalter. Die Verarbeitung des korrigierten und vorher unterbrochenen Programms wird damit
wieder aufgenommen, beginnend von der im Anzeigeteil 6 optisch angezeigten Anweisung.
Das Interpretations-Programm beendet daher die Verarbeitung und
optische Anzeige der Anweisung, wenn die reservierte Adresse dieselbe ist, wie die der auszuführenden Anweisung.
Die günstige Verwendbarkeit des DBG-Programms für die "Reservierung
einer Programm-Stop-Adresse" wird dann offensichtlich,
bei dem ein Programm von einem bestimmten Punkt an korrigiert werden soll.
- 82-
509828/0783
In diesem Fall ist es nützlich, die Verarbeitungsoperationen direkt vor dem Anweisungsblock, in dem ein Fehler vermutet
wird, anzuhalten.
6.7 Einschreiben in RAM 1-Block B6 (Taste S6)
Wenn nach dem Eingeben von acht hexadezimalen Zeichen der Programmierer
die Taste S6 (logische Entscheidung 425 in Fig.
11c) betatigt,führt das DBG-Programm einen Sprung zum Block
446 in Fig. 11f aus.
Von dieser Adresse auszugehend wird ein "Einschreiben in RAM 1-Programm"
aufgezeichnet und die acht hexadezimalen Zeichen werden als Modifizierung des Inhaltes von RAM 1 angesehen,
wie jetzt erläutert werden soll.
Die erste bei der Adresse 17EE aufgezeichnete Anweisung ist eine Anweisung AP, 2, welche den Zeiger (P2) 312 auf das
vierte Byte des. Registers 364 setzt, während die nachfolgende
Anweisung TCP den Zeiger (P1) 311 auf das erste Byte des Register
364 setzt. Wie es schon anhand von Block 421 (Fig. 11c) gesehen wurde, werden die über das Tastenfeld eingegebenen
Zeichen im Register 364 aufgezeichnet.
Die Anweisung YTG, welche die eingeführten Zeichen, die im Register 364 vorliegen, komprimiert und transcodiert, wird
anschließend ausgeführt. Diese Anweisungen werden symbolisch durch den Block 446 in Fig. 11f wiedergegeben. Anschließend
wird mittels der Anweisungen TLD, 2, YBP, 2 und TRD, 1 der Inhalt; des Register 362 in das Register (P1) 311 überführt,
welches,wie anhand von Block 420 in Fig. 11c gesehen wurde,
die Adresse derjenigen Anweisung oder Daten ist, die auf der Anzeige 6 vorliegt. Das Register (P2) 312 wird anschließend
- 83 509828/0783
mittels einer Anweisung -TL, 2 (Block 447 in Fig· 11f) auf
Null gesetzt. Der Inhalt des Registers 364 wird mittels der Anweisungen YBP, 2; AP, 2 und MVG in das Register des Speichers
RAM 1, der durch das Register (P1) 311 (Block 448). adressiert wurde, überführt. Das Register (RB) 310 wird anschließend auf den Wert 0160 (Block 449) gesetzt. Anschließend
wird ein Sprung zu der Adresse 17BC (Block 438 in Fig. 11d) ausgeführt, woraufhin die Anweisung oder die Daten, die der
modifizierten Anweisung folgen, optisch angezeigt werden, wie es vorher beschrieben wurde.
Es ist dargestellt worden, wie es möglich ist,, den Inhalt
der auf der Anzeigeeinheit fest vorhandenen Anweisung durch
die Eingabe von acht Zeichen über das Tastenfeld 5 und die
Betätigung der Taste S6 zu verändern.
6.8 Schrittweise Programmausführung
Schließlich betätigt die Bedienungsperson die RIM-Taste oder
einen Druckschalter des Bedienungsfeldes 7 (logische Entscheidung 427 in Fig. 11c), woraufhin - wie gesagt - ein Sprung
zu der Adresse 180G ausgeführt wird. Die Anweisungen TLD, 2, TLD, 1 und MVG werden deshalb ausgeführt (Block 450 in Fig.
11g) um in den Zellen CA und CB die beiden Bytes des Registers
(RG) 359, die vorher in das Register 367 (siehe Block 403 in.
11a) überführt wurden, wieder-herzustellen»
Anschließend wird mittels der Anweisungen AP, 2; AP, 1 und MVC (Block 451), das Tasteneinschaltbyte, das vorher in die
Zelle 018A (Block 404 in Fig. 11a) überführt worden ist, im Register (AB) 370 wieder hergestellt.
Mittels der Anweisungen SP, 2; SP, 1 und MVG (Block 452) wird
der Inhalt des Arbeitsregisters 352, der vorher in das Re-
- Qh-509828/0783
- 8k -
gister 566 (Block 401 in Fig. Ha) überführt wurde, ebenfalls
wieder-hergestellt.
Schließlich wird die Anweisung YPS ausgeführt, welche den Inhalt des Registers (OPSR) 301 im Register (PSR) 300 wiederherstellt
und den Inhalt des Registers (IR) 327 dem Programmadressierer
L07 (Block 452) zuführt. Auf diese Weise wird diejenige Anweisung des zu testenden Programms, die der optisch
angezeigten folgt, gelesen. Im einzelnen gilt für das Interpretations-Programm:
1) Ausführung des Sprunges zu der symbolischen Adresse IINTE
(logische Entscheidung 202 und Block 250, Fig. 10a und b), insoweit als bei den Bytes CP 313 und PI 314 das Bit 05
sich stets im 1-Zustand befindet, da der Umschalter 100 sich noch in seiner DBG-Position befindet.
2) Da das Bit 01 von .BSD sich auf dem Null-Pegel befindet
(entsprechend dem Normalzustand) wird ein Sprung zu der Adresse IINTE1 (logische Entscheidung 257 und Block 265
von Fig. 10b) ausgeführt, das Bit bO1 von BSD auf eins gesetzt und schließlich die Ausführung der Anweisung
durch den Sprung nach IALFAR (Block 265) fortgesetzt.
3) Am Ende der Anweisung führt der Interpretationsteil die Operationen, die unter 1) erläutert sind mit der nachfolgenden Anweisung aus und die logische Entscheidung 257
folgt daraufhin wie unter 2) dargestellt. Das Bit 01· von BSD wird darüber hinaus auf Null gesetzt, wie es stets zu
Null gemacht wird, bevor ein DBG-Programm ausgeführt wird.
4) Wie' bereits dargestellt (Fig. 10b und c) fährt die Anlage
fort, das DBG-Programm auszuführen und die gerade ausgeführte Anweisung wird folglich optisch dargestellt.
5 0 9828/0783 ~5~
Es ist ersichtlich gewesen, dass, wenn der Programmierer den
Umschalter 100 in die DBG-Position setzt und die RUN-Taste 7a
betätigt, die optisch dargestellte-Anweisung ausgeführt wird.
Jedesmal, wenn die RUN-Taste betätigt ist, wird der Programmzähler
um vier Einheiten heraufgesetzt, wie es mit Bezug auf den Interpretationsteil erwähnt worden ist, und die Anlage
führt die Anweisung aus, die bei dieser Adresse aufgezeichnet ist. ■ .
Mittels der wiederholten Betätigung der RUN-Taste ist es damit
möglich, die Ausführung einer Anweisung und.die optische
Darstellung der nachfolgenden Anweisung in einem zu testenden Programmblock zu befehlen. Diese abwechselnde Folge der Ausführung
einer Anweisung und der optischen Darstellung der nächsten Anweisung wird "schrittweise" Ausführung genannt
und die Nützlichkeit bei der Fehlerbefreiung eines Programmes
ist offensichtlich.
7. Abschließende Bemerkungen und Beispiele
Eine abschließende Beschreibung der dem Programmierer sich bei der Perfektionierung eines Programmes durch das erfindungsgemäße
Fehlerbefreiungssystem sich bietenden Möglichkeiten
soll jetzt anhand von Pig. 14 beschrieben werden.
ITorraalerweise gibt der Programmierer das zu testende Programm
in die Datenverarbeitungsanlage ein (Block 700) und befiehlt die Ausführung.
Wenn er'einen Fehler bemerkt, setzt er den Umschalter 100 in
die DBG-Position (logische Entscheidung 701) und hält auf
diese «reise die Ausführung des zu testenden Programms an,
woraufhin auf der Anzeigeeinheit die optische Anzeige der-
- 86 50 9 828/0783
jenigen. Anweisung erscheint, die im Moment der Unterbrechung
nicht mehr ausgeführt wird (Block 702). Die Anlage kann darüber hinaus in den Fehlerbefreiungs-Betriebszustand auch
dann übergehen, wenn eine STOP-Adresse der Verarbeitungsoperationen, die vorher festgelegt wurde, erkannt worden ist.
In diesem Fall verhält sich die Anlage so, als ob der Umschalter
100 betätigt worden wäre und auch die Tasten SO bis S6 behalten ihre bei der DBG-Operation beschriebene Bedeutung bei.
An dieser Stelle schaltet das DBG-Programm die Tasten SO, S1,
S2 und S6 ein und begibt sich in eine Warteposition für die Dateneingabe über das Tastenfeld (Block 703)· Entsprechend
der betätigten Taste (logische Entscheidung 704, 705) führt
die Anlage das entsprechende DBG-Programm aus, das in ROM 2 enthalten ist.
Zum Ende des DBG-Programms, das zu der entsprechenden Taste
SO, S1, SG und der EUN-TasteVgehört, gelangt der Prozessor
zu Block 701 zurück, um die Ausführung eines weiteren DBG-Programms
abzurufen.
Wenn andererseits die Bedienungsperson mittels der Taste S2 die Ausführung eines auf einer Magnetkarte (Block 706) gespeicherten
Programms befohlen hat, wird-die Wiederaufnahme durch eben dieses Magnetkartenprogramm gesteuert. Im einzelnen
ist es möglich, die Wiederaufnahme bei der logischen Entscheidung 701 (getestetes Programm oder DBG-Programme) oder
bei der logischen Entscheidung 702 - und dabei direkt"
D3G-Programm - vorzunehmen.
Das auf einer Magnetkarte aufgezeichnete Programm eröffnet deni Programmierer die Möglichkeit, andere DBG-Programme, die
auf anderen Trägern aufgezeichnet sind, einzuschalten, wodurch dem Programmierer alle erwunschbaren Möglichkeiten, des
Wiedereinstiegs gegeben sind.
- 87 -
509828/0783
Ss sollen Jetzt zwei einfache Beispiele für die Benutzung
des erfindungsgemäßen Fehlerbefreiungssystems gegeben werden.
Es soll angenommen werden, daß der Programmierer einen Fehler
im Programm suchen muß. Er kann beispielsweise das Programm in zwei Blöcke mit einer bestimmten Anzahl von Anweisungen
unterteilen und die falsche Anweisung innerhalb der Grenzen dieser Blöcke suchen. In diesem Fall wurde er in der folgenden
Art vorgehen:
Er setzt den Umschalter 100 in die DBG-Position und die Anweisung,
die auf die Unterbrechung folgt, wird daraufhin optischdargestellt.
Er gibt über das Tastenfeld die relative Adresse derjenigen Anweisung ein, bei der das Programm anhalten soll und betätigt
die Taste S1 (Blöcke 710 und 711).
Er setzt den Umschalter 100 zurück in seine Normalposxtion
und betätigt die RUN-Taste.
Das Tesbprogramm wird daraufhin bis zur reservierten Adresse weiter ausgeführt. Das zu testende Programm hält bei dieser
Adresse an und die bei der reservierten Adresse aufgezeichnete Anweisung wird optisch dargestellt (Block 702). Die
Ausführung des Programms bis zu der reservierten Adresse deutet daraufhin, daß in diesem Block keine Formalfehler vorhanden
sind. Es soll also angenommen werden, daß in dem zu testenden Programm ein Fehler nicht vorliegt. Der Programmierer
reserviert in der vorher beschriebenen Weise die Adresse des folgenden Blocks, setzt den Umschalter 100 zurück in
seine Normalposition und betätigt die RUN-Taste 7a.
509 8 28/078 3
Sn noil nun angenommen werden, daß der Programmierer einen
Prc~ranimierfehler im zweiten Block findet und daß er den
Wunsch hat, die zu korrigierende Anweisung zu identifizieren.
Er gi"bt die Initialadresse des Blocks über das Tastenfeld ein und betätigt die Taste SO (Blöcke 712 und 713). Das DBG-Frogramm
sorgt für die optische Anzeige der Adresse und der entsprechenden Anweisung auf der Anzeigeeinheit und kehrt
folglich zu den Blöcken 702 und 703 zurück. An dieser Stelle
betätigt der Programmierer die RIJR-Taste, nachdem er die in
diesem Block vorhandenen Fehler beseitigt hat, wodurch das Testprogramm wieder an der Stelle aufgenommen wird, an der
ep unterbrochen wurde. Auf diese Weise kann der Programmierer
einen Block, in dem er einen Fehler vermutet, Anweisung für Anweisung durchgehen.
Wenn er feststellt, daß eine optisch dargestellte Anweisung falsch ist, betätigt er nicht die RUIT-Taste, sondern gibt
über das Tastenfeld die richtige Anweisung ein und betätigt dann die Taste S6. Auf diese Art und Weise wird durch das
D3C—Programm die falsche Anweisung bei der optisch dargestellten
Adresse durch die über das Tastenfeld eingegebene ersetzt.
Auf diese V/eise hat der Programmierer die Möglichkeit, alle Anweisungen des Programms zu kontrollieren und diejenigen
Berichtigungen auszuführen, welche er für notwendig hält.
BeisOJel 2
Ss soll im folgenden angenommen werden, daß das zu verbessernde Programm alle verfügbaren Speicherplätze einnimmt.
Darüber hinaus soll angenommen werden, daß nach Ausführung
aller möglichen DBG-Operationen der in ROM 2 vorhandenen Programme
der Programmierer noch nicht alle Fehler beseitigen konnte.
5098 28/0783
- 89 -
BAD ORfGiNAL
Aus dem Gesagten ist es offensichtlich, daß das zu testende Programm nicht wieder aufgenommen werden kann und der Programmierer
deshalb das Programm noch einmal durchgehen muß.
Zu diesem Zweck ist es für ihn nützlich, den Inhalt von RAM
1 in tabellarischer Form ausgedruckt zu erhalten. Dann kann der Programmierer durch eine Analyse diese Ergebnisse seinen
Weg zurück zu den falschen Anweisungen finden. Um den Inhalt
des Speichers auszudrucken, ist es nun aber notwendig, daß
ein geeignetes DBG-Programm die Ausführung des Drückens überwacht.
Da dieses Programm nicht unter denjenigen vorhanden ist, die in SOM 2 aufgezeichnet sind, kann der Programmierer
eine Magnetkarte benutzen, auf der dieses Programm festgehalten ist.
Um den Inhalt des Speichers ausgedruckt zu erhalten, muß der Programmierer folgendermaßen vorgehen:
Er führt eine Magnetkarte in den Leser 9' ein.
Er setzt den Umschalter 100 in die DBG-Position.'
♦
Er betätigt die Taste S2.
Er betätigt die Taste S2.
wie bereits dargestellt, wird hierdurch das auf der Magnetkarte vorhandene Programm in die Register 360 bis 367 von ZRM
überführt und sofort ausgeführt.
Es ist sichergestellt, daß die Register 360 bis 367 nicht ausschließlich
für DBG-Programme reserviert sind, sondern während der normalen Arbeitsweise dazu dienen, Zwischenergebnisse
einer Anzahl von Anweisungen aufzunehmen.
Es soll darüber hinaus daraufhin gewiesen werden, daß diese Register 360 bis 367 auf jeden Fall in· jedem beliebigen Rech-
-90 509828/0783
BAD ORIGINAL .
Λ,-jr vorhanden sind, da es stets notwendig ist, bei einigen
Abweisungen Zwischenergebnisse zu speichern (wie beispielsweise bei Multiplikation- und Divisionsanweisungen).
Ss geht aus dem Gesagten hervor, wie die Benutzung von ZHIl es gestattet, jedes auf einer Magnetkarte gespeicherte
Programm einzuspeichern und auszuführen, ohne daß signifikante
Parameter des zu testenden Programms betroffen sind.
Die Vorteile dieser Möglichkeiten leiten sich nicht nur daraus ab, daß DBG-Programme auf einer Magnetkarte aufgezeichnat
ist, die prinzipiell nur begrenzten Raum aufweist, sonder.i
haben ihr e Ursache in erster Linie darin, daß das Programia
in der Lage ist, eine Speicherzone freizumachen, ohne daß deren Inhalt vernichtet wird, und darin, daß ein DBG-Pr-ogranm
größerer Länge und Komplexität in dieser Zone gespeichert werden kann.
Daraus geht weiter geht hervor, daß unter Benutzung des erfinäur-gsTjemäßen
Fehlerbefreiungsprogramms der Programmierer vollständig unabhängig ist, was das Aufstellen und die Perfektionierung
von neuen oder die Modifizierung von bestehenden Programmen angeht. ,
Las erfindungsgemäße System gibt dem Programmierer eine große Anzahl von neuen Möglichkeiten. Diese hängen auch von der
Komplexität des zu behandelnden Problems ab, der Zahl verfügbarer DBG-Programme und schließlich auch von den Fähigkeiten
des Programmierers.
Ls ist selbstverständlich, daß die Veränderung, der Ersatz
oder das Hinzufügen von Teilen bei dem beschriebenen Progrannverbesserungssystem
vorgenommen werden kann, ohne den Bereich der Erfindung zu verlassen.
- 91 -
5 0 9 8 2 8/0783
BAD ORIGINAL
Neben Magnetkarten können die externen Datenträger für
Fehlerbefreiungsprogramme, die dem Programmierer zur Verfügung stehen, Magnetkarten, Lochkarten usw. sein. Die
einzige Bedingung ist, daß die Zahl der auf dem Datenträger
aufgezeichneten Zeichen die Zahl der in ZRM zur Verfügung
stehenden Bytes nicht.übersteigt.
Die in RGM 2 vorhandenen und zuvor beschriebenen DBG-Programme
können sowohl in Bezug auf ihre Zahl als auch auf ihren Inhalt "- entsprechend der in ROM 2 verfügbaren Zone-
und den Bedürfnissen der Datenverarbeitungsanlage abweichen.
Die Register 36O bis 367 von ZRM in RAM 1, Welche die
DBG-Programme, welche auf einem externen Träger aufgezeichnet
sind, während der DBG-Operation aufnehmen, können auch in anderer Weise als in Fig. 9 dargestellt angeordnet
sein. Genauer gesagt, können sie jede beliebige Zelle innerhalb von ZRM einnehmen, vorausgesetzt, daß ihr Inhalt
nicht wichtig ist für die Anweisungen, die sich darin befunden haben. Darüber hinaus brauchen die Register innerhalb
ZRM nicht aufeinanderfolgend angeordnet zu sein, sondern
können separate Gruppen bildfen. In diesem Fall muß der Programmierer diese Register während des Lesens der Magnetkarte
richtig adressieren.
Schließlich können noch die DBG-Programme in ROM 2 und in
der Zone von RAM 1 (Register 36O bis 367), die zur Aufnahme
anderer "DBG-Programme, die auf externen Trägern (beispielsweise
Magnetkarten) aufgezeichnet sind, vorgesehen ist, andersartig
angeordnet sein. Genauer gesagt, können sie sich in einer Zone von RAM 1 befinden, die ausschließlich zur
Aufnahme von DBG-Programmen vorgesehen ist, oder in einem,
dritten Speicher der Zentraleinheit 3t die nur DBG-Prοgramme
enthält.
- 92 -
5 0 9 8 2 8/0783
Abschließend soll klargestellt werden, daß die Erkennung der äußeren Bedingungen, welche die DBG-Programme betreffen
(Umschalter 100 und Tasten 102) und das nachfolgende Setzen
der Register von ZRM, welche die genannten Bedingungen aufnehmen soll, auf viele andere Arten als beschrieben vorgenommen
werden kann.
- 93 -
Chr./MP - 25 68k
509828/0783
Claims (1)
- ■ . - 93 Pat entansprüche( 1.)Elektronische Datenverarbeitungsanlage mit Einrichtung zur Fehlerbefreiung von Rechenprogrammen sowie einem ersten Speicher zur Aufnahme der Anweisungen und Daten der Rechenprogramme, einer Zentraleinheit zum .Verarbeiten der Programme, einem Schaltmittel zum wahlweisen Einleiten einer ersten Betriebsweise der Datenverarbeitungsanlage zur Ausführung der Rechenprogramme und einer zweiten Betriebsweise zu deren Fehlerbefreiung, einem Tastenfeld zur Eingabe von Informationen in den ersten Speicher, die sich auf die Rechenprogramme während der ersten Betriebsweise beziehen gekennzeichnet durch Mittel (PI 31^), die durch das Schaltmittel (Umschalter 100) so steuerbar sind, daß sie die Zentraleinheit (CU 3) beeinflussen, die Verarbeitung der Rechenprogramme zu unterbrechen, um die zweite Betriebsweise einzuleiten und die Eingabe von Informationen, die ein.besonderes Fehlerbefreiungsprogramm betreffen, ebenfalls über das Tastenfeld (5) zu ermöglichen.2. Datenverarbeitungsanlage nach Anspruch T mit einer Anzeigeeinheit (6) zur Darstellung von Informationen, die sich auf die Rechenprogramme während der ersten Betriebsweise beziehen, dadurch gekennzeichnet, daß das Schaltmittel (Umschalter IOO) die Zentraleinheit (CU 3) veranlaßt, die Anzeigeeinheit (6) während der zweiten Betriebsweise dem Fehlerbefreiungsprogramm zuzuordnen.509828/078 3.- 9k -3· Datenverarbeitungsanlage nach Anspruch 2, dadurch gekenneichnet , daß das Schaltmittel (Umschalter 100) während der zweiten Betriebsweise die Zentraleinheit (CU 3) veranlaßt, der Anzeigeeinheit (6) die Adresse der jeweils nächsten anzuführenden Anweisungen des Rechenprogramms, das von Fehlern befreit werden soll, und die codierte Information, die bei dieser Adresse im ersten Speicher (RAM 1) enthalten ist, zuzuführen.k, Datenverarbeitungsanlage nach Anspruch 3 mit einem Speicheradressenregister zum Festhalten der absoluten Adresse der nächsten auszuführenden Anweisung und einem Basisregister zum Festhalten der Basisadresse des von Fehlern zu befreienden Rechenprogramms, dadurch gekennzeichnet, daß die Zentraleinheit (CU 3) durch das Schaltmittel (Umschalter IOO) so gesteuert wird, daß die relative Adresse der nächsten auszuführenden Anweisung durch Subtraktion des Inhalts des Basisregisters (RB 32O) vom Inhalt des Speicheradressenregisters (Lu 7) errechnet und der Anzeigeeinheit (6) zugeführt wird,5. Datenverarbeitungsanlage nach Anspruch k mit einem Bedingungsprogrammregister zum Festhalten der wesentlichen Ergebnisse vorher avsgeführter Anweisungen, dadurch gekennzeichnet , daß das Schaltmittel (Umschalter IOO) die Zentraleinheit (CU 3) veranlaßt, während des zweiten Betriebszustandes der Anzeigeeinheit (6) den Inhalt des Programmbedingungsregisters (CP 3^3) zuzuführen.6. Datenverarbeitungsanlage nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet , - daß- 95 -509828/0783■-■ 95 -das Fehlerbefreiungsprogramm in eine Anzahl von Blöcken (B100, BO, B1, B2, Bö) unterteilt ist und das Tastenfeld (5) eine Anzahl von Tasten (SO, S1, S2, S6) enthält, die während des weiteren Betriebszustandes durch das Schaltmittel (Umschalter 100 ) so beeinflußt werden, daß sie wahlweise die Verarbeitung der eingegebenen Information durch denjenigen Fehlerbefreiungsprogrammblock (ΒΙΟΟ,ΒΟ, BI, B2, b6) steuern, der der betätigten Taste aus der Anzahl von Tasten (SO, S1, S2, S6) zugeordnet ist.7· Datenverarbeitungsanlage nach einem der Ansprüche 1,2 oder 6, die eine periphere Einheit einschließt zur Eingabe von Informationen von einem externen Datenträger in die Zentraleinheit, gekennzeichnet durch einen zweiten Speicher (Register 36Ο bis 367) zum Festhalten der auf dem Datenträger (Magnetkarte 9) aufgezeichneten Informationen mittels einer vorbestimmten, im Tastenfeld (5) enthaltenen Taste(S2), um die Zentraleinheit (CU 3) zu veranlassen, das von dem Datenträger (Magnetkarte 9) ausgelesene Programm in den zweiten Speicher (Register 36Ο bis 367) zu überführen und das in diesem Speicher vorhandene Programm zu starten,8. Datenverarbeitungsanlage nach Anspruch 7» dadurch gekennzeichnet , daß der zweite Speicher (Register 36Ο bis 367) in dem ersten Speicher (RAM 1) enthalten ist«9· Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet , daß die Zentraleinheit (CU 3) Daten, die für das Rechenprogramm während der ersten Betriebs· weise nicht relevant sind am Ende jeder Anweisung im zweiten Speicher (Register 36Ο bis 367) festhält.- 96 -5098-28/07 8 310. Datenverarbeitungsanlage n ch Anspruch 9, dadurch gekennzeichnet , daß die periphere Einheit aus einem Magnetkartenleser (91) und der externen Datenträger aus einer Magnetkarte (9) besteht,11. Datenverarbeitungsanlage nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß das Schaltmittel (Umschalter IOO) wahlweise ein erstes Signal (Bit 05 von PI 31*0 mit einem ersten logischen Zustand, der der ersten Betriebsweise zugeordnet ist, und einem zweiten logischen Zustand, der der zweiten Betriebsweise zugeordnet ist erzeugt, und daß die durch das Schaltmittel (Umschalter IOO) gesteuerten Mittel (PI 314 in Abhängigkeit von dem zweiten logischen Zustand des ersten Signals (Bit 05 von PI 31*0 die erste Betriebsweise unterbrechen und die zweite Betriebsweise einleiten,12. Datenverarbeitungsanlage nach Anspruch 11, dadurch gekennzeichnet , daß die durch die Schaltmittel (Umschalter IOO) gesteuerten Mittel enthalten:ein .erstes Register (PI 31*0 des ersten Speichers (RAM i) zum Festhalten des ersten logischen Signals (Bit 05 von PI 31*0.ein zweites Register (CP 313) des ersten Speichers RAM 1) zum Pesthalten eines zweiten Signals (Bit 05 von CP 313)» daß das erste Signal (Bit 05 von Pl) ansteuert, wobei die Zentraleinheit (CU 3) zum Einleiten der zweiten Betriebsweise sowohl vom zweiten logischen Zustand des ersten Signals (Bit 05 von Pl) als auch vom zweiten Signal (Bit 05 von CP) gesteuert wird.- 97 -509 8 2 8/078313. Datenverarbeitungsanlage nach einem der Ansprüche 4 bis 12 mit einem dritten Speicher (ROM 2) zum Festhalten, der zu den Anweisungen gehörenden Mikroprogramme, dadurch gekennzeichnet, daß die gesteuerten Mittel (PI 314) ein drittes Register (AI 334) des ersten Speichers (RAM 1) zum Festhalten eines dritten Signals (Bit 02 von AI 334) mit einem ersten logischen Zustand, der dem ersten Speicher (RAM 1) zugeordnet ist und einem zweiten logischen Zustand, der dem dritten Speicher (ROS 2) zugeordnet ist, wobei die Zentraleinheit (CU 3) durch den ersten und zweiten logischen Zustand des dritten Signals (Bit 02 von AI 33*0 gesteuert wird zum Eingeben der Adresse des ersten (RAM 1) und des dritten (ROM 2) Speichers der nächsten auszuführenden Anweisung in das Speicheradressenregister (L07) und eines vierten Signals (Bit 03 von GP ) mit einem ersten und einem zweiten logischen Zustand, der dem ersten bzw. dritten Speicher (RAM 1 bzw« ROM 2) zugeordnet ist, in das zweite Register (CP 313).14. Datenverarbeitungsanlage nach Anspruch 13» dadurch gekennzeichnet , daß die Zentraleinheit (cU 3) durch den ersten und zweiten logischen Zustand des vierten Signals (Bit 03 von CP) zum Lesen der nächsten auszuführenden Anweisung im ersten bzw. dritten Speicher (RAM 1 bzw. ROM 2) gesteuert wird.15.Datenverarbeitungsanlage nach Anspruch 14, dadurch gekennzeichnet , daß das Fehlerbefreiungsprogramm in einer vorbestimmten Zone (b in Fig. 9) des dritten Speichers (ROM 2) aufgezeichnet ist und daß die Zentraleinheit (CU 3) durch den zweiten logischen Zustand des dritten Signals (Bit 02=0 von PI 334) zum Eingeben der Anfangsadresse der vorbestimmten Zone (B in Fig. 9) in das Speicheradressenregister (L07) bzw. des zweiten50 9 8 28/0783- 98 -logischen Zustandsdes vierten Signals (Bit 03 von CP) in das zweite Register (CP 313) gesteuert wird.16. Datenverarbeitungsanlage nach Anspruch 15, gekennzeichnet durch ein viertes Register (RC 359i Position 9) des ersten Speichers (RAM 1) zum Festhalten von Signalkombinationen, die den Tasten (SO, S1, S2, S6) zugeordnet sind, wobei die Zentraleinheit (CU 3) durch die Signalkombinationen angesteuert wird, um die entsprechenden Blöcke (BO, B1, B2, b6) auszuwählen.17· Datenverarbeitungsanlage nach Anspruch 16, dadurch gekennzeichnet , daß die Zentraleinheit (CU 3) durch die Signalkombinationen gesteuert wird, um wahlweise in das Speicheradressenregister (lO 7) die Adresse derjenigen Blöcke (BO, B1, B2, B6) einzugeben, die der jeweiligen Signalkombination zugeordnet sind«509828/0783Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT70879/73A IT1000643B (it) | 1973-12-28 | 1973-12-28 | Calcolatore elettronico con appa recchiatura per la messa a punto dei programmi operativi |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2458651A1 true DE2458651A1 (de) | 1975-07-10 |
DE2458651C2 DE2458651C2 (de) | 1987-03-12 |
Family
ID=11314444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742458651 Granted DE2458651A1 (de) | 1973-12-28 | 1974-12-09 | Elektronische datenverarbeitungsanlage mit einrichtung zur fehlerbefreiung von rechenprogrammen |
Country Status (9)
Country | Link |
---|---|
JP (1) | JPS5722137B2 (de) |
AR (1) | AR208682A1 (de) |
BE (1) | BE822844A (de) |
CA (1) | CA1032273A (de) |
DE (1) | DE2458651A1 (de) |
ES (1) | ES433381A1 (de) |
FR (1) | FR2256476B1 (de) |
GB (1) | GB1480520A (de) |
IT (1) | IT1000643B (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2644431A1 (de) * | 1975-09-30 | 1977-04-07 | Olivetti & Co Spa | Datenendstation mit einer anordnung zum anschalten und initialisieren der endstation |
DE2912657A1 (de) * | 1979-03-30 | 1980-10-09 | Olympia Werke Ag | Datenverarbeitendes geraet |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5580153A (en) * | 1978-12-14 | 1980-06-17 | Toshiba Corp | Program processor |
JPS55128641A (en) | 1979-03-23 | 1980-10-04 | Nissan Motor Co Ltd | Controlling system for vehicle |
USRE31582E (en) * | 1979-03-23 | 1984-05-08 | Nissan Motor Company, Limited | Automatic control system for method and apparatus for checking devices of an automotive vehicle in use with a microcomputer |
DE3038367C2 (de) * | 1979-10-13 | 1994-06-23 | Canon Kk | Elektrofotografisches Gerät |
JPS59133610A (ja) * | 1983-01-19 | 1984-08-01 | Omron Tateisi Electronics Co | プログラマブルコントロ−ラ |
JPH01137018U (de) * | 1988-03-12 | 1989-09-19 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3415981A (en) * | 1967-10-10 | 1968-12-10 | Rca Corp | Electronic computer with program debugging facility |
-
1973
- 1973-12-28 IT IT70879/73A patent/IT1000643B/it active
-
1974
- 1974-12-02 BE BE151062A patent/BE822844A/xx not_active IP Right Cessation
- 1974-12-06 JP JP14039174A patent/JPS5722137B2/ja not_active Expired
- 1974-12-09 DE DE19742458651 patent/DE2458651A1/de active Granted
- 1974-12-10 CA CA215,646A patent/CA1032273A/en not_active Expired
- 1974-12-12 AR AR256880A patent/AR208682A1/es active
- 1974-12-13 GB GB53991/74A patent/GB1480520A/en not_active Expired
- 1974-12-27 FR FR7443047A patent/FR2256476B1/fr not_active Expired
- 1974-12-27 ES ES433381A patent/ES433381A1/es not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3415981A (en) * | 1967-10-10 | 1968-12-10 | Rca Corp | Electronic computer with program debugging facility |
Non-Patent Citations (2)
Title |
---|
DE-Z.: Elektronische Rechenanlagen, H. 6, 1968, S. 291-296 * |
US-Z.: IBM Technical Disclosure Bulletin, Dezember 1973, S. 2322-2329 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2644431A1 (de) * | 1975-09-30 | 1977-04-07 | Olivetti & Co Spa | Datenendstation mit einer anordnung zum anschalten und initialisieren der endstation |
DE2912657A1 (de) * | 1979-03-30 | 1980-10-09 | Olympia Werke Ag | Datenverarbeitendes geraet |
Also Published As
Publication number | Publication date |
---|---|
JPS5722137B2 (de) | 1982-05-11 |
FR2256476A1 (de) | 1975-07-25 |
CA1032273A (en) | 1978-05-30 |
AR208682A1 (es) | 1977-02-28 |
BE822844A (fr) | 1975-04-01 |
IT1000643B (it) | 1976-04-10 |
DE2458651C2 (de) | 1987-03-12 |
AU7651774A (en) | 1976-06-17 |
GB1480520A (en) | 1977-07-20 |
JPS5099445A (de) | 1975-08-07 |
ES433381A1 (es) | 1976-12-16 |
FR2256476B1 (de) | 1979-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2540824C2 (de) | Auf verschiedene Ausbaustufen veränderbare Abrechnungsmaschine | |
DE2353421C3 (de) | Elektronischer Rechner | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE2452214A1 (de) | Mikroprozessor mit unmittelbarer und indirekter adressierung | |
DE3047251A1 (de) | Rechner | |
DE1931966B2 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2951191A1 (de) | Elektronisches woerterbuch | |
DE2540823C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE1215964B (de) | Programmwerk fuer Rechenmaschinen | |
DE3013070C2 (de) | Schaltungsanordnung zur Bearbeitung von aus mehreren peripheren Geräten herangeführten Anforderungssignalen innerhalb einer datenverarbeitenden Einrichtung | |
DE2601242A1 (de) | Elektronenrechner mit programmspeicherung | |
DE2458651A1 (de) | Elektronische datenverarbeitungsanlage mit einrichtung zur fehlerbefreiung von rechenprogrammen | |
DE2538978C2 (de) | ||
DE2753650C2 (de) | Zeithaltende Einrichtung mit einem Register zum Speichern von Zeitzähldaten | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2362238A1 (de) | Elektronische datenverarbeitungsanordnung | |
DE2658950A1 (de) | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben | |
DE2428020A1 (de) | Elektronische datenverarbeitungsanlage mit unabhaengigen funktionseinheiten fuer das gleichzeitige ausfuehren verschiedener operationen an denselben daten | |
DE1549420A1 (de) | Programmvorrichtung fuer einen elektronischen Rechner | |
DE2248962A1 (de) | Verfahren bzw. einrichtung zum betrieb eines vielzweckrechners | |
DE2264184C3 (de) | Elektrischer Tischrechner | |
DE2840904C2 (de) | ||
DE3104881A1 (de) | "programmierbarer rechner" | |
DE2952072A1 (de) | Einrichtung zur verarbeitung binaer codierter dezimalzahlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |