DE3048614A1 - Datenverarbeitungssystem mit pruefeinrichtung - Google Patents

Datenverarbeitungssystem mit pruefeinrichtung

Info

Publication number
DE3048614A1
DE3048614A1 DE19803048614 DE3048614A DE3048614A1 DE 3048614 A1 DE3048614 A1 DE 3048614A1 DE 19803048614 DE19803048614 DE 19803048614 DE 3048614 A DE3048614 A DE 3048614A DE 3048614 A1 DE3048614 A1 DE 3048614A1
Authority
DE
Germany
Prior art keywords
test
mov
controller
memory
equ
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.)
Withdrawn
Application number
DE19803048614
Other languages
English (en)
Inventor
David R. Framingham Mass. Bourgeois
James A. West Boylston Mass. Ryan
Subhash C. Roxbury Mass. Varshney
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of DE3048614A1 publication Critical patent/DE3048614A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Description

— s —
Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem nach dem Gattungsbegriff des Anspruches 1 und insbesondere auf einen programmgesteuerten Eigentest, wobei eine System-Konfigurationsliste bei jeder Ausführung des Testprogrammes erzeugt wird.
Bei Datenverarbeitungssystemen ist es üblich, Verarbeitungseinheiten über Dialogverbindungen in einem Netzwerk miteinander zu verbinden. Die Gsamtleistung des Systems verteilt sich hierbei auf die einzelnen Einheiten des Systems. Diese Entwicklung ergab sich durch die Großintegration von Komponenten, wobei es möglich ist kleine, relativ billige Mikroprozessoren an vielen verschiedenen Stellen innerhalb des Systems zu benutzen.
In derartigen verteilten Datenverarbeitungssystemen wird es immer wichtiger, Mittel und Verfahren zum automatischen überprüfen der Funktionsfähigkeit der Einheiten vorzusehen, da die Verarbeitungsleistung einer jeden, einzelnen Einheit immer größer wird. Da ferner jede Einheit sehr flexibel aufgebaut ist, kann sie eine unterschiedliche Konfiguration einnehmen und unterschiedlich betrieben werden, und es müssen daher Mittel und Verfahren vorgesehen sein, um die bestimmte Konfiguration und den Status einer jeden Einheit den anderen Einheiten jeweils anzuzeigen und um aie Konfiguration und die Statusinformation jedesmal fortzuschreiben, wenn die Einheit in einem unterschiedlichen Operationsmodus betrieben wird.
Es ist daher die Aufgabe der vorliegenden Eerfindung, ein Datenverarbeitung s sy stern anzugeben, das die Möglichkeit einer automatischen vorprogrammierten Selbstprüfung aufweist und bei dem der Betriebsstatus und die Konfiguration einer Einheit angezeigt und automatisch in periodischen Zeitintervalen fortgeschrieben werden kann. Die Lösung dieser Aufgäbe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
130037/0807
Gemäß der Erfindung wird bei einem Datenverarbeitungssystem mit einem Prozessor und einer Speichereinrichtung zunächst ein erster Test durchgeführt, um die Funktionsfähigkeit eines ersten Abschnittes der Speichereinrichtung festzustellen. Wenn der erste Speicherabschnitt eine fehlerhafte Funktion aufweist, so wird der weitere Betrieb des Systems gesperrt. Mit einem zweiten lest wird die Funktionsfähigkeit eines zweiten Abschnittes der Speichereinrichtung überprüft, und es werden die Ergebnisse ües zweiten Tests in dem ersten Speicherabschnitt abgespeichert.
Die Speichereinrichtung umfaßt einen Speicher mti wahlfreiem Zugriff RAM und einen Festwertspeicher ROM, wobei die in dem Festwertspeicher gespeicherten Daten der Reihe nach ausgelesen werden. Aus den ausgelesenen Daten des Festwertspeichers wird ein Signaturwort errechnet, das in einem vorbestimmten Speicherplatz des Speicners RAM gespeichert wird.
Wenn das Eatenverarbeitungssystem mit Eingabe/Ausgabe-Steuereinrichtungen ausgestattet ist, so wird ein Unterbrechungs-Anforderungssignal an eine ausgewählte E/A-Steuereinrichtung zu deren Test ausgegeben. Das von der E/A-Steuereinrichtuag -^urückempfangene Unterbrecnungs-Antwortsignal wira mit einem vorbestimmten Unterbrechungs-Antwortwert verglichen, wodurcn. ein ein jfehlerninweisbit- aufweisendes ünterbrechungs-Statuswort erzeugt wird. Das ünterbrechungs-Statuswort wird in einem vorbestimmten Speicherplatz der Speichereinrichtung abgespeichert.
Annand eines in den Figuren der beiliegenden Zeichnung dargestellten Ausführungsbeispieles sei im folgenden ein Ausführungsbeispiel· der Erfindung näher eriäutert. Es zeigen:
130037/0807
Fig. 1 ein Blockdiagraitun des erfindungsgemäßen Systems für die Steuerung eines automatischen Bankterminals .
Fig. 2 ein Blockdiagramm zur Veranschaulichung weiterer Einzelheiten der-Mikroprozessorsteuerung MPC und der Schnittstellenverbindung des Systems gemäß Fig. 1.
Fig. 3a und 3b ein Blockdiagramm der Schaltkreise der Mikroprozessorsteuerung MPC von Fig. 2.
Fig. 4-15 Flußdiagramme zur Veranschaulichung der Mikroprogrammfirmware innerhalb der Mikroprozessorsteuerung MPC für die Steuerung des Eigentests und des Konfigurationstatus1 des Systems.
Fig. 1 zeigt das erfindungsgemäße System in Form einer Steuerung für einen automatischen Bankterminal. Das System umfaßt eine Mikroprozessorsteuerung MPC-100, die-über einen Schnittstellenverbinder 150 an mehrere E/A-Steuerungen 200 - 208, einen externen Speichermodul 210 und an einen Safe 212 angeschlossen ist. Der Safe 212 umfaßt einen Schnittstellenschaltkreis 226, Funktionsschalter 228·, eine Bargeld-Ausgabeeinheit 230 und eine Eingabeeinheit 232.
Das System gemäß Fig. 1 kann an eine zentrale Transaktionssteuerung über ein Dialogverbindungsmodem 214 und eine Dialogsteuerunc 200 angeschlossen sein. Eine Druckersteuerung 202 verbindet die Mikroprozessorsteuerung MPC mit einem Belegdrucker 216 und einem Quittungsdrucker 218, die beide Ausgabekopien liefern.
Eine Tastatursteuerung 204 verbindet die Mikroprozessorsteuerung MPC mit einer externen Tastatur 220, die beispielsweise auf der Steuerkonsole des von dem Kunden benutzten Terminals angeordnet ist.
130037/0807
Eine Karten-Lesesteuerung 206 bildet die Schnittstelle für einen Magnetkartenleser 222, der beispielsweise die magnetisch kodierten Daten einer in die Steuerkonsole eingeführten Kunden-Identifikationskarte liest. Die Steuerung 208 bildet die Schnittstelle zwischen der Mikroprozessorsteuerung MPC und einer Kathodenstrahlröhre-Anzeigeeinheit CRT-224, die ebenfalls auf der Steuerkonsole angeordnet ist, um dem Kunden visuell Instruktionen zu geben, die ihm die Ausführung einer Transaktion ermöglichen. Ein externer Speichermodul 210 dient der Speicherung der System-Firmware sowie der allgemeinen Datenspeicherung. Der Safe 212 ist an die Mikroprozessor steuerung MPC über deren seriellen Dialoganschluß angeschlossen, wodurch ein Dialog zwischen dem Mikroprozessor und dem Safe über die Schnittstelleneinneit 226 in bitseriellerweise ermöglicht wird.
Fig. 2 veranschaulicht die Eingänge und Ausgänge der Mikroprozessorsteuerung MPC sowie des Schnittstellenverbinders 150 in näheren Einzelheiten. Der im dargestellten Asuführungsbeispiel verwendete Schnittstellenverbinder umfaßt zehn Schaltkreisplatinen-Verbindungsabschnitte. Die ersten sechs Abschnitte 151 15b werden für den Anschluß der fünf Steuerungen 200 - 208 und der externen Speichereinheit 210 benutzt. Die Abschnitte 7-10 sina für üie Systemerweiterung vorgesehen und werden bei dem vorliegenden Ausführungsbeispiel nicht benutzt. Gemäß Fig. 2 verbindet ein E/A-Steuereinrichtung-Auswahlbus 157 die Steuerung MPC-100 mit den zehn Verbindungsabschnitten. Jede der zehn Leitungen 01XX-OAXX (Hexadezimalcode) ist mit einem bestimmten Kontaktanscnluß in jedem der zehn Schnittstellenabschnitte verbunden, Wenn die Steuerung MPC eine E/A-Operation ausführt, so wird eine aer zenn Leitungen innerhalb des Busses 157 freigegeben, um die spezielle ausgewählte E/A-Steuereinrichtung zu aktivieren. Die den Sciinittstellenabschnitten zugeordneten E/A-Steuereinrichtungen sind mit ihren oberen zehn Anscnlüssen gemeinsam angeschloßen, sodaß die Steuereinrichtung durch ein Auswahlsignal unabhängig davon freigegeben wird, in welchem Abschnitt sie angeordnet ist.
130037/0807
Ein Unterbrechungsbus 158 verbindet ebenfalls die Schnittstellenabschnitte 1-10 mit der Steuerung MPC-100. Der Bus umfaßt elf Unterbrechungsleitungen IR11-IR14 und IR16-IR22, um jede E/A-Steuereinrichtung in die Lage zu versetzen, ein oder zwei Antwortsignale mit unterschiedlichem Unterbrechungspegel an die Steuerung MPC zu senden. Die Unterbrechungs-Antwortleitungen sind innerhalb jedes Schnittstellenabschnittes in Kaskadenform an das gleiche Paar von Kontaktanschlüssen angeschlossen. Hierdurch wird eine geeignete Zuteilung eier Unterbrechungsleitungen zu den verschieden E/A-Steuereinrichtungen ermöglicht, während die Flexibilität des Einsetzens einer E/A-Steuereinrichtung in irgendeinen Schnittstellenabschnitt mit einem Minimum an Einschränkungen erhalten bleibt. Die durch die dargestellte Schnittstellenanordnung vorgegebene Einschränkung liegt darin, daß, wenn irgendeine E/A-Steuereinrichtung zwei Unterbrechungspegel erfordert, die in den nächst höheren Schriittstellenabschnitt eingesetzte Einrichtung 0 Unterbrechungspegel erfordern muß. Bei der dargestellten Anordnung mit zehn Anschnitten begrenzt diese Einschränkung das System auf die Verwendung von nicht mehr als fünf Einrichtungen mit zwei ünterbrechungspegeln, die in die Abschnitte 1, 3, 5, und 9 bzw. 2, 4, 6, 8 und 10 eingesetzt werden. Natürlich kann aer Schnittstellenverbinder 150 bis zu zehn Einrichtungen mit einem einzigen Unterbrechungspegel aufnehmen. Wie nachstehend noch beschrieben wird, liefert die bei dem System verwendete Selosttest-Firmware eine Unterbrechungs-Nachweisprüfung, um sicherzustellen, daß die zuvor erwähnten Unterbrechungseinschränkungen richtig beachtet werden.
Die Verbindung zwischen der Steuerung MPC und dem Schnittstellenverbinder 150 umfaßt ferner einen Steuerbus 159 mit acht Leitungen, einen Addressbus 160 mit zwanzig Leitungen und einen Datenbus 161 mit acht Leitungen. Die in diesen drei Bussen enthaltenen 36 Leitungen sind parallel an die gleichen 36 Kontaktanschlüsse angeschlossen. Eine einzelne Leitung 162 ist mit dem seriellen Dialoganschluß der Steuerung MPC verbunden und dem Safe 212 zugeteilt.
130037/0807
Die Fig. 3a und 3b zeigen schematisch die einzelnen Schaltkreiskomponenten der Steuerung MPC-100. Die Steuerung MPC umfaßt einen Mikroprozessor 102, der beispielsweise dem Typ 8088.entsprechen kann, wie er von der Firma Intel Corporation hergestellt und vertrieben wird.
Der Mikroprozessor 102 umfaßt einen Ein/Ausgabebus 1O3 mit acht Leitungen, die im Zeitmultiplex betrieben werden, um acht Adaressignale AD0-AD7 zu übertragen und um parallel Datenbytes mit acht Bit von einem Sender/Empfangsschaltkreis 108 zu empfangen und an diesen zu senden. Der Schaltkreis 108 ist an einen internen Datenbus 105 mit acht Leitungen angeschlossen, der seinerseits mit einem Sender/Empfänger 142 der Ein/Ausgabesteuerung IOC verbunden ist. Der Datenbus 105 gestattet die Übertragung von Daten zwischen dem Mikroprozessor 102 und der Unterbrechungssteuerung 124 und den in der Steuerung vorgesehenen Speicnermodulen 130, 132,136 und 138 sowie zwischen dem Mikroprozessor und den E/A-Steuergeräten. Daten werden zu und von des an den Schnittstellenverbinder 150 eingeschlossenen E/A-Steuergeräten über den internen Datenbus 105, den Sender/Empfänger 142 und den IOC-Datenbus 161 übertragen. Die Datenübertragung zwischen dem Mikroprozessor und dem Safe 212 erfolgt über den internen Datenbus 105, den seriellen Dialoganschluß 128 und die einzelne Leitung des seriellen Jnschlußbusses 162.
Ein 8 Bit-Anäressenverriegelungsschaltkreis 106 ist ebenfalls an den Multiplexbus 103 angeschlossen und wird benutzt, um die Ausgangssignale AD0-AD7 des Mikroprozessors zu verriegeln und zu speichern und diese Addressignale an das restliche System zu liefern. Ein Steuersignal ALE wird als Tastsignal der Verriegelung zugeführt, um die Signale auf den Bus 103 zu geben und diese zusammen mit den zwölf Addressausgangssignalen MA8-MA19 des Mikroprozessors einem Adressenpufferschaltkreis 114 über den Addressbus 113 mit zwanzig Leitungen zuzuführen.
130037/0807
Die zwanzig Ausgangss'ignale des Pufferschaltkreises 114 werden als Addressignale HAO-MA19 den zwanzig'Leitungen des Addressbusses 111 zugeführt, der zu den verschiedenen Speicher- und Steuerschaltkreisen der Steuerung MPC sowie zu den an den Schnittstellenverbinder 150 angeschlossenen E/A-Steuergeräten führt. Die Addressignale werden den E/A-Steuergeräten über den Addresspuffer 144 und den IOC-Addressbus 160 zugeführt.
Der Mikroprozessor 102 gibt ferner Steuersignale S0-S2 über den Ausgangsbus 164 mit drei Leitungen aus. Die Steuersignale S0-S2 zusammen mit einem Taktsignal, das durch den Oszillator 104 erzeugt wird, werden durch den Dekodierschaltkreis 116 dekodiert, um neun Steuersignale dem Steuerbus 115 mit neun Leitungen zu- . zuführen. Ein erstes dieser Steuersignale ist die vorgeschobene Speicher-Schreibanweisung ANWC, die über den Pufferschaltkreis 120 und den IOC-Steuerbus 159 zu dem externen Speichermodul 210 übertragen wird, wo sie verwendet wird, um Daten-Schreiboperationen in diesen einzutasten. Das Speicherlese-Anweisungssignal MRTC wird innerhalb der Steuerung MPC verwendet, um Speicher-Leseoperationen in die RAM-Module 130 und 132 und in die PROM-Module 136-138 einzutasten. Das Signal MRTC wird ebenfalls über den Puffer 120 und den IOC-Steuerbus 159 zu den E/A-Steuergreäter übertragen, um Speicher-Leseoperationen zu steuern. Das Adressenverriegelungs-Freigabesignal ALE wird nur in der Steuerung MPC benutzt und testet - wie zuvor ermähnt - die Adressenverriegelun^ 106, um die Addressignale MA0-MA7 zu bilden.
Das Daten-Freigabesignal DEN auf dem Steuerbus 115 wird dem IOC-Daten-Sender/Empfänger 142 zugeführt, um diesen für Daten-Transferoperationen bereitzustellen. Das Signal DEN wird ebenfalls über den Puffer 120 und den IOC-Steuerbus 159 auf die E/A-Steuergeräte gegeben. Ein Daten-Sender/Empfangs-Steuersignal DT/R wird intern in der Steuerung MPC dem Sender/Empfänger 142 zugeführt una bringt die Bus-Treiberschaltkreise dieses Schaltungselementes in den geeigneten Zustand, um Sende- bzw.Empfangsoperationen auszuführen.
130037/0807
30486U
Das Steuersignal DT/Rwird ebenfalls über den IOC-Steuerbus 159 den E/A-Steuergeräten zugeführt.
Eine Ein/Ausgabe-Leseanweisung IROC wird auf dem Steuerbus 115 bereitgestellt und innerhalb der Steuerung MPC der Unterbrechungssteuerung 124, dem seriellen Dialoganschluß 128 und dem Diagnose-PROM 110 zugeführt, um während Ein/Ausgabeoperationen ein Lese-Freigabesignal an diese Schaltkreise zu liefern. Die Anweisung IROC wird ebenfalls über den Steuerbus 159 den E/A-Steuergeräten zugeführt. Eine Ein/Ausgabe-Schreibanweisung IOWC wird ebenfalls erzeugt und der Unterbrechungssteuerung 124, dem seriellen Dialoganschluß 128 und dem Diagnose-PROM 110 zugeführt, um Schreiboperationen an den Lin/Ausgabeanschlüssen der Schaltkreise zu ermöglichen. Die Anweisung IOWC wird in gleicher Weise über den IOC-Steuerbus 159 übertragen.
Ein vorgeschobenes Ein/Ausgabe-Schreibanweisungssignal AIOWC wird erzeugt und auf dem IOC-Steuerbus verwendet, um ausgewählte Register in den E/A-Steuergeräten vor der Erzeugung der Anweisung IOWC bereitzustellen. Ein Unterbrechungs-Bestätigungssignal INTA liegt ebenfalls auf dem Steuerbus 115 vor und wird der Unterbrechungssteuerung 124 sowie den E/A-Steuergeräten zugeführt, um den Empfang von durch diese Geräte ausgelösten Unterbrechungssignalen zu bestätigen.
Der Oszilator 104 speist das Taktsignal CLK in den Mikroprozessor 1O4, um die üblichen Zeittakt- und Steuersignale vorzugeben, und er beaufschlagt den Dekodierschaltkreis 116, um die Erzeugung der gerade beschriebenen neun Steuersignale zu ermöglichen. Zusätzlich führt der Oszilator 104 das Taktsignal dem Echtzeit-Taktgeneratorschaltkreis 118 zu, der seinerseits ein Unterbrechungssignal IR8 erzeugt. Das Signal IR8 wird der Unterbrechungssteuerung 124 zugeführt, um eine interne Unterbrechungsmöglichkeit innerhalb der Steuerung MPC vorzusehen.
130037/0807
Die Steuerung MPC weist einen RAM-Chip 130 mit einer Speicherkapazität von 256 Bytes auf. Ferner besitzt die Steuerung MPC einen zweiten RAM-Chip mit einer Speicherkapazität von 1 Kilobyte. Ein programmierbarer Diagnose-Festwertspeicher PROM 110 ist ebenfalls innerhalb der Steuerung MPC vorgsehen, um die Steuerfirmware für den Selbsttest und die Konfigurationsliste zu speichern, was noch näher beschrieben wird. Die RAM-Speicher 130 und 132 und der PROM-Speicher 110 werden durch einen Speicher-Chipauswahlschaltkreis 134 gesteuert, dem die acht Addresssignale MA8-MA15 von dem Addressbus 111 zugeführt werden und der ein Freigabe-Ausgangssignal an die Speicher 130, 132 bzw. 110 liefert, das von dem Speicherbereich abhängt, auf den durch die Addressignale MA8-MA15 zugegriffen wird. Der RAM-Speicher 130 wird durch die Addressignale MA0-MA6 adressiert, .die von dem Addressbus 111 den Addresseingängen A des Speichers zugeführt werden. Der RAM-Speicher 132 wird durch die Addressignale MA0-MA9 adressiert. Der PROM-Diagnosespeicher 110 wird über den Multiplexbus 103 durch die Addressignale AD0-AD7 adressiert, die direkt von dem Mikroprozessor 102 zugeführt werden. Wie zuvor erwähnt, werden die Leseanweieungen IORC den RAM-Speichern 130 und 132 zugeführt und die Leseanweisung IORC wird dem PROM-Speicher zugeführt. Die von den RAM-Speichern 130 und 132 gelesenen Daten werden über .den internen Datenbus 105 und den Sender/Empfänger 1ü8 auf den Mikroprozessor geschaltet, während die von dem PROM-Speicher 110 gelesenen Daten über den Multiplexbus 103 zu dem Mikroprozessor übertragen werden.
Die Steuerung MPC umfaßt ebenfalls acht PROM-Module 136^138 mit einer Speicherkapazität von jeweils zwei Kilobyte, die benutzt werden, um die von dem System verwendete 'Bearbeitungsfirmware zu speichern. Die PROM-Speicher 136-138 werden durch Asugangssignale freigegeben, die von einem PROM-Chip-Auswahlschaltkreis 140 zugefünrt werden. Dieser Äuawaalscnaltkreis wird durch ein Signal ΙΟ/MEN freigegeben, das seinem Gattereingang G zugeführt wird, und dieser Auswahlschaltkreis wird ferner durch Address-Eingangssignale MA11-MA13 gesteuert, die von dem Addressbus 111 geliefert
130037/0807
werden. Das Ausgangssignal des Chip-Auswahlschaltkreises 140 wühlt einen der acht P ROM-Spei eher aus. Jeder PROM-Speicher wird an seinem Addresseingang A mit Addressignalen MAO-MA1O beaufschlagt, um einen bestimmten Byte-Speicherplatz in dem Speicher auszuwählen. Die Leseanweisung MRTC wird ebenfalls dem PROM-Speichern 136-138 als ein Lese-Addressignal zugeführt.
Ein MPC-Auswahldekodierer 122 ist vorgesehen, um Freigabe-Eingangssignale für den Diagnosespeicher PROM-110, die Unterbrechungssteuerung 124 und den seriellen Lialoganschluß 128 zu erzeugen. Der Auswahldekodierer 122 dekodiert die Address-Eingangssignale MA4-MA7 vom Addressbus 111, und er wird durch ein Ausgangssignal des E/A-Geräteauswaiildekoaierers 126 gesteuert, üer Dekodierer 126 dekodiert die Addressignale MA8-MA11, und er wird durch das Signal ΙΟ/MEN gesteuert, das von dem Mikroprozessor-Steuerbus 164 zugeführt wird. Die 16 Ausgangssignale des Dekodierers 126 geben das Steuer-Eingangssignal für den Dekoaierer 122 und die 15 IOC-Auswahlbussignale I/O O1XX-I/OOAXX vor.
Der serielle Dialoganschluß 128 ist durch einen programmierbaren Dialogchip vorgegeben, dem Eingangs-Addressdaten über die . Addressignale MAO-MA2 und ein Freigabesignal vom Auswahldekodierer 122 zugeführt werden. Der serielle Dialoganschluß 128 empfängt parallel Datenbytes mit acht Bit von dem internen Datenbus 105 und überträgt diese in bitserieller Weise zu dem Safe 212 über den seriellen Anschluß-Datenbus 162. Umgekehrt erhält der Dialoganschluß 128 bitseriell Daten auf der Leitung 162 zugefünrt una überträgt diese parallel in Bytes mit acht Bit zu aem internen Datenbus 105. Der Schaltkreis 128 benutzt die Lese- und Schreib-Steuersignale IORC und IOWC und erzeugt die Unterbrechungssignale IR9 und IR1O, die Sende- und Empfangsunterbrechungen entsprechend darstellen.
130037/0807
Die Unterbrechungssteuerung 124 wird durch das Signal MAO vom Addressbus 111 freigegeben, und sie antwortet auf Unterbrechungssignale IR8-IR22, die.von dem Echtzeit-Taktgenerator 118, dem seriellen Dialoganschluß 128 und den E/A-Steuergeräten über den IOC-Unterbrechungsbus 15d empfangen werden, um das Unterbrechungssignal IhIR an den Mikroprozessor 102 zu erzeugen. Der Mikroprozessor erzeugt seinerseits das Unterbrechungs-Bestätigungssignal IMTA an die Unterbrechungssteuerung 124 und die E/A-Steu-1 ergeräte, um zu signalisieren, daß der Prozessor bereit ist, die Unterbrechung zu bearbeiten. Danach überträgt die Unterbrechungssteuarung 124 einen Uiiterbreciiur.gdvektor über den internen Datenbus 105 zu dem Mikroprozessor. Der Linterbrechungsvektor ist ein 32 Bit-Wort, das in der Unterbrechungssteuerung gespeichert ist und dem Prozessor mitteilt, welcher Speicherplatz in dem RAM-Speicher die Befehle zur Behandlung der speziellen Unterbrechung speichert.
Addressignale MA0-MA7 werden benutzt, um Btriebsbefehle an die E/ArSteuergeräte zu liefern, wenn diese durch die IOC-Auswahlsignale I/O 01XX-I/0 OAXX freigegeben sind. So besitzt jedes der E/A-Steuergeräte, uie an den Scnnittstellenverbinder.150. angeschlossen sind, die Möglichkeit, die Signale MAU-MA7 zu dekodieren und bis zu 256 Steuerfunktionen zu erzeugen.
Der PROM-Diagnosespeicher 110 speichert die Diagnosefirmware der Steuerung MPC, um den Selbsttest und die Konfigurations-Listenoperationen gemäß der vorliegenden Erfindung auszuführen. Die System-Hardware veranlaßt den Mikroprozessor 1Ό2 zur Ausgabe der Hexadezimaladresse FF FFO, während des Einschaltens der Spannung und der Inbetriebnahme des Systems. Wenn die Adresse FF FFO an den Addressous 111 angelegt wird und eine Speicher-Leseanweisung ausgegeben wird, so wird der erste Befehl der in dem PROM-Diagnosespeicner 110 befindlichen Firmware dem Mikroprozessor zugeführt und das System beginnt mit der Selbsttestroutine. Diese kann auch als nicht-residente Diagnosesoftware bezeichnet werden, die von der zentralen Steuerung, über die Dialogsteuerung 200 ge-
130037/0807
30A86H
liefert wird. Der Zweck der Selbsttestroutine liegt darin, anzuzeigen, ob das System betriebsfähig ist oder nicht. Zusätzlich wird durch die Routine eine System-Konfigurationsliste gebildet. Der Durchlauf/Ausfallstatus nach der Überprüfung durch die Selosttestroutine erscheint visuell auf einer Leuchtdiodenanzeige 112, die von dem PROM-Diagnosespeicher 110 angesteuert wird. Es sind neun lichtend tierende Dioden LED innernalb der Anzeige 112 vorgesehen, die scnrittweise angesteuert werden, um die spezielle SelDSttest-Subroutine bei ihrer Ausführung anzuzeigen und die nur gelöscht werden, wenn die gesamte Routine vollständig beendet ist. Im Falle eines Fehlers, wird ein spezieller Fehlerkode durch die Dioden angezeigt, um den Operator auf die Ursache des Fehlers aufmerksam zu mactien.
Die Selüsttestroutine arbeitet mit maximaler Zuverlässigkeit, da sie in einem zugeordneten PROM-Diagnosespeicher enthalten ist, der direkt über den Multiplexbus 103 mit dem Mikroprozessor 102 verbunden ist. Diese Busarchitektur stellt sicher, daß das Selbsttest-Mikroprogramm solange bearbeitet wird,wie wenigstens der Mikroprozessor und der Diagnosespeicher funktionsfähig sind. Die Selbstteststrategie zur Fehlerfeststellung arbeitet in der Weise, daß irgendein Fehler innerhalb der Steuerung MPC oder bezüglich der Verfügbarkeit von weniger als 16 K des Speichers RAM innerhalb des externen Speichermoduls 210 als katastrophale Fehler angesehen werden und den Systembetrieb beenden, wobei der Auftritt des Fehlers kodiert auf der Leuchtdiodenanzeige 112 angezeigt wira. In einem solchen Fall bleibt die Selbsttestfirmware in einer Schleife hängen, die fortgesetzt durchlaufen wird, um den Fehlertest zu wiederholen Wenn das Programm nicht-katastrophale Fehler feststellt, so werden geeignete Fehlerhinweise gesetzt und StatusIndikatoren erzeugt und in eine Konfigurationstabelle in dem ROM-Speicher 132 der Steuerung MPC eingegeben, wobei das System seinen Betrieb fortsetzt.
Die Selbsttestroutine führt die folgenden Operationen in folgender Reihenfolge aus:
130037/0807
30A86H
1..Mikroprozessor-Test
2. RAM-Test
3. Echtzeit-lakt-Test
4. MPC-Rückschleifendialog-Test
5. ROM-Signaturberechnung
6. E/A-Steuergeräte-Test
7. System-Konfigurationsbildung
In aen Fig. 4-15 ist das Selbsttest-Mikroporgramm in Flußdiagrarnmen dargestellt. Darüberhinaus sind in dem angefügten Annang die im Intel 8088-Quellenkode kodierten Programmbefehle aufgelistet, wie axes dem Fachmann geläufig ist. Wie bereits erwähnt, handelt es sicn bei dem Mikroprozessor 102 vorzugsweise um aen Intel-Mikroprozessor 8088, der in der Lage ist, das im Anhang veranschaulichte Mikroprogramm auszuführen.
Nachstehend sei annand der Flußdiagramme und ..aes im Anhang aufgelisteten Programmes die Wirkungsweise des erfindungsgemäßen Systems näher beschrieben.
Fig. 4 zeigt die grundlegende Selbsttest-Steuerschleife, die wie zuvor erwähnt - wänrend der Systemeinschaltung ausgelöst wird und aurcn eine Anzahl von Selbsttest-Subroutinen fortschreitet, tsei inrer Ausführung setzt die Routine Konfigurationstabellen zusammen, durch welche Information über den Systemstatus und die Konfiguration zur Verwendung durch das Betriebssystem und durch externe Einheiten in dem Veraroeitungsnetzwerk geliefert wird, wouei die externen Einheiten von Zeit zu Zeit mit der Steuerung MPC und ihren verschiedenen E/A-Steuergeräten zusammengeschaltet werden. Gemäß Fig. 4 setzt der erste Schritt A in der Selbsttest-Steuerschleife axe LED-Anzeige 112 auf den Wert 00 00 00 01, woaurch dem Operator mitgeteilt wird, daß das System den anfänglichen lest der Routine, d. h. den Test der Zentraleinheit CPU durchfünrt. jJie Steuerschleife durchläuft sodann der Reihe nach die verschiedenen lestroutinen B-K.
130037/0807
Nach, der Bildung der System-Konfigurationstabellen im Schritt H bearbeitet das System den Schritt I, wobei die LED-Anzeige entweder gesetzt wird, um den geeigneten Fehlerhinweis zu erzeugen, falls Fehler aufgetreten sind/oder abgeschaltet wird, um den Ablaufzustand zu signalisieren. Danach wird der Verzweigungsschritt K ausgeführt, um festzulegen, ob das System mit dem Diagnosemodus fortfährt, in welchem Fall die Ja-Verzweigung zum Austritt in eine Diagnoseuberwachungs-Subroutine L gewählt wird. Wenn das System mit seiner regulären Operation fortfährt, so wird der Schritt K über die Nein-Verzweigung verlassen, und es wird im Schritt M die lichtemitierende Diode Nr. 4 eingeschaltet, woraufhin das System im Schritt K auf die Betriebsfirmware übergeht, um normale Operationen auszuführen.
Die Mikrobefehle der Selbsttest-Steuerschleife gemäß Fig. 4 können dem Programm im Anhang anhand der Programmschritte A-N entnommen werden. Die Steuerschleife beginnt mit einer Reihe von sieben Initialisierungsbefehlen, beginnend mit dem Befehl ORG OF 800 H und endend mit dem Befehl MOV SB, ST ACKH. Die nachfolgenden Befehle innerhalb der Steuerschleife sind durch die buchstai>en A-N. bezeichnet uad finden sich in Fig. 4 unter üen gleichen Bezeichnungen. Die zu Anfang in dem Anhang gegebene Information gibt die notwendigen Definitionen für das Verständnis des Programmes vor. Die tatsächlichen Befehle treten in den Spalten 2 und 3 der Programmliste im Anhang auf. Wie man dem Anhang entnimmt, ist der erste Befehl im Schritt A durch MOV AL, LED CPU vorgegeben. Hierdurch wird das Register AL mit einem Datenwort geladen, das dem CPU-Testrnuster "LED CPU" entspricht. Dieses Muster entspricht dem Hexadezimalwert 01 (OO 00 00 01 in binärer Darstellung). Bei Beendigung des Schrittes A bearbeitet das Programm den Befehl JMP CPU TST, der den auslösenden Befehl der CPU-Testroutine darstellt und das Programm zum Sprung auf den Speicherplatz dieser Subroutine veranlaßt.
130037/0807
30486U
CPU-Test
Die CPU-Testsubroutine B ist in dem Flußdiagramm gemäß Fig. 5 dargestellt und in Einzelheiten durch die Mikroprogrammbefehle in den Abschnitten BO-B6 des Anhanges beschrieben. Diesen Abschnitten BO-B6 sind wiederum entsprechende Abschnitte des Flußdiagrammes gemäß Fig.· 5 zugeordnet. Durch die Befehlsgruppe B1 werden die System-Datenbusse getestet, indem Muster von abwechselnd "1" und "0" über die Busse übertragen werden und die empfangenen Daten geprüft werden, um festzustellen, ob ein Fehlerzustand vorliegt. Wenn keine Fehler festgestellt werden, so schreitet die Routine zu der Befehlsgruppe B2 fort, um die verschiedenen Adressier- und Daten-Übertragungsverfahren des Mikroprozessors zu prüfen. Als nächstes wird die Befehlsgruppe B3 bearbeitet, um die Steuer-Übertragungsfähigkeit des Mikroprozessors zuerst durch Überprüfung von bedingten Steuerübertragungen, und sodann durch Überprüfung durch wiederholte Steuerübertragung zu testen.
Als nächstes wird die Arithmetik- und Logikeinheit des Mikroprozessors durch Ausführung der Befehlsgruppe B4 getestet. Gemäß der Befehlsliste werden durch die Befehle die Operationen getestet, die die Erhöhung, Erniedrigung, Rechtsverschiebung, Linksverschiebung, Negierung und Addition betreffen. Die letzten bei der CPU-Testsubroutine ausgeführten Operationen betreffen die Bfehlsgruppe B5, die die Fähigkeit des Mikroprozessors t bestimmte Datenketten-Abtast- und Suchoperationen auszuführen, testen.Bei erfolgreicher Beendigung der Mirkoprozessortests, bearbeitet das Programm im Schritt B6 den Befehl.JMP SEL FLP 2, der einen Sprung auf den Befehl SEL FLP 2 in der Selbsttest-Steuerschleife beinhaltet. Der Befehl SEL FLP 2 ist der Anfangsbefehl der Test-Subroutine C für den Speicher RAM. Da dieser Befehl JMP MEM TST einen Sprung zu MEM TST aufruft, springt das Programm zu dem Befehl CO, um die RAM-Test-Subroutine auszulösen. Wenn ein Fehler während des CPU-Tests festgestellt wurde,
130037/0807
so springt das Programm zu CPU ERR und von dort zu CPU HLT in der Steuerschleife, wodurch die Feststellung eines CPU-Fehlers angezeigt wird.
RAM-Test
Die RAM-Test-Subroutine gemäß Fig. 6 umfaßt die Befehlsgruppen CO-C15, die in der Programmliste des Anhangs näher aufgelistet sind. Bei dieser Subroutine wird die Funktionsfähigkeit des statischen RAM-Speichers 132 der Steuerung MPC zunächst getestet und für den Fall, daß ein erfolgreicher Betrieb festgestellt wird, werden die Schaltkreise innerhalb des externen Speichermoduls 210 geprüft. Gemäß Fig. 6 wird, nachdem die LED-Anzeige im Schritt C1 auf OO 00 00 10 gesetzt ist, die MPC-RAM-Test-Subroutine C2 ausgelöst, um den Betrieb des Speichers RAM 132 zu überprüfen. Die Subroutine C2 umfaßt die vier Operationen C2-0 bis C2-3 gemäß Fig. 7. Die Operation C2-2 1st die weitere Subroutine RAM TST, die in dem Flußdiagranun gemäß Fig. 7a dargestellt ist und die Schritte C2-2-O bis C2-2-8 umfaßt.
Die zur Überprüfung der Funktionsfähigkeit des Speichers RAM verwendete Prozedur ist in der RAM TST-Subroutine gemäß Fig. 7a enthalten. Nachdem die Parameter in der richtigen Weise im Schritt C2-2-1 ausgelöst worden sind, schreibt das Programm in jeden Speicherplatz des Speichers RAM Testdaten, die durch Subtrahieren des am wenigsten signifikanten Bits von den am meisten signifikanten Bit der Adresse des Test-Speicherplatzes bestimmt werden. Danach werden diese Daten in einer Leseoperation im Schritt C2-2-3 überprüft, und es wird eine logische Exklusiv-ODER - Operation zwischen den erwarteten Daten und den festgestellten Daten ausgeführt, wenn ein Fehler festgestellt wird. Irgendwelche falschen RAM-Bits werden somit durch den Logikzustand "1" angezeigt, und es wird durch eine logische ODER-Verknüpfung der während des Testlaufes festgestellten Einzel-Fehlerauftritte eine akkumulative Fehlerstatistik erzeugt. Die Fenler-
130037/0807
feststellung und die Akkumulation werden im Schritt C2-2-4 ausgeführt· Danach wird die gleiche Testfolge mit den komplementierten lestdaten wiederholt. Dies geschieht in den Schritten C2-2-5 bis C2-2-7. Wenn irgendwelche Fehler während der Subroutine C2 festgestellt werden, so werden sie als ein katastrophaler Fehler betrachtet, und wenn das Programm zu dem Schritt C3 (Fig. 6) fortschreitet, so kehrt es zu dem Schritt C1 zurück, und das MPC-RAM-Testverfahren wird wiederholt. Diese Schleife wiederholt sich solange, wie ein Fehler festgestellt wird und der Selbsttest bleibt hängen, wobei die LED-Anzeige auf OO 00 00 10 gesetzt ist.
Unter der Annahme, daß die MPG RAM-Überprüfung befriedigend verläuft, schreitet das Programm zu dem Schritt C4 fort, um den externen RAM-Speicher zu testen. Dies geschieht in der Test-16KB-Subroutine C9, die in Fig. 8 dargestellt ist und die die RAM TST-Subroutine C9-2 umfaßt. Der Befehl JMP RAM TST im Befehlsschritt C9-2 gibt einen Sprung auf die RAM TST-Subroutine gemäß Fig. 7a vor, die die gleiche Subroutine ist, welche zuvor'zum Test des Speichers RAM der Steuerung MPC benutzt wurde. Somit wird wiederum das durch Differenzbildung gewonnene Testmuster für jede Adresse zweimal überprüft, wobei dies zuerst direkt und sodann komplementiert geschieht. Dies erfolgt für jede 16K des externen Speichers RAM. Nachdem jeder 16K-RAM-Block.geprüft ist, werden die Ergebnisse im Schritt C10 (Fig. 6) zur Verwendung in der Konfigurationstabelle aufgezeichnet.
Bezüglich der spezifischen Befehle im Schritt C10 tritt das Programm in ein Wort mit vier Byte in der Tabelle (im RAM 132) für jeweils 16 Kilobyte des externen Speichers RAM ein. Die ersten zwei Bytes enthalten einen Adressenhinweis auf den Beginn des 16 Kilobyte-Blockes, das dritte Byte zeichnet die IOC-Schnittstellennummer (Abschnitt) der zugeordneten Speichersteuerung auf und das'vierte Byte zeichnet die Ergebnisse des RAM-Testes auf. Dieses letzgenannte Byte besitzt den Wert 0, wenn keine Fehler festgestellt wurden, andernfalls enthält es die akkumulierten
130037/0807
Fehlerbits, die für den 16 Kilobyte-Speicherblock festgestellt wurden. Geeignete Tabellenhinweis— und Größendaten werden sodann in den Selbsttest-Steuerabschnitt des Speichers RAM 132 eingegeben. Dies geschieht für jeden Block mit 16 Kilobyte beim Test des externen Speichers.
Nachdem jeder externe RAM-Block eines vorgegebenen Schnittstellenabschnittes getestet ist, schreitet das Programm zu den Schritten C12 und C13 (Fig.' 6) fort und sucht nach zusätzlichen Schnittstellenabschnitten, die externe zu prüfende Speicher enthalten. Die gleichen Verfahren werden für jede angeordnete Speichersteuerung wiederholt. Nachdem alle externe Speicher geprüft worden sind, führt das Programm einen Verzweigungsbefehl C14 aus, um festzustellen, ob irgendein Block mit 16 Kilobyte des externen Speichers als gut befunden wurde. Wenn kein Hinweis für einen guten Block gesetzt ist, so kehrt*das Programm zu dem Schritt C4 zurück und wiederholt den gesamten IOC-RAM-Testzyklus erneut. Diese Schleife wird solange durchlaufen, wie kein fehlerfreier Block mit 16 Kilobyte im externen Speicher festgestellt wird. Dieser Zustand stellt daher einen katastrophalen Fehlerzustand dar, bei welchem das Selbsttestprogramm angehalten wird und eine geeignete Fehleranzeige auf der LED-Anzeige erfolgt. Wenn wenigstens ein fehlerfreier Block mit 16 Kilobyte des Speichers RAM festgestellt wurde, so tritt das Programm aus dem Schritt C14 über die Ja-Verzweigung aus und schreitet zu dem Schritt C15 fort, der einen Sprungbefehl nach SEL FLP 3 darstellt. Hierdurch kehrt das Programm auf die Steuerschleife zurück, woraufhin der Befehl CALL RTCTST bearbeitet wird, um die Echtzeit-Takt-Test-Subroutine D auszulösen.
Echtzeit-Takt-Test
Die Echtzeit-Takt-Test-Subroutine D ist in Fig. 9 dargestellt. Durch diesen Test wird festgestellt, ob der Echtzeit-Takt innerhalb der Steuerung MPC vorliegt. Der Echtzeit-Taktgenerator
130037/0807
(Fig. 3a) ist so ausgelegt, daß er den Mikroprozessor sechzigmal pro Sekunde (ungefähr alle 17 Millisekunden) unterbricht. Die Testbefehle D1tD4 testen, ob die Unterbrechungsfunktion wirksam ist. Die Befehle D5-D7 testen den Auftritt von vorherrschenden Unterbrechungen, während die Befehle D8-D1O sicherstellen, daß keine Unterbrechung auftreten kann, wenn der Echtzeit-Takt gesperrt ist. Ein Ausfall des Echtzeit-Taktes bei irgendeiner der drei Betriebsweisen, stellt einen katastrophalen Fehlerzustand dar, sodaß das Programm zu dem Schritt D1 zurückkehrt und den Echtzeit-Takt-Test wiederholt. Dies geschieht, in dem das Programm den Schritt D4 über die Nein-Verzweigung verlässt oder wenn es aus den Verzweigungsschritten D7 bzw. D1O über die Ja-Verzweigung austritt. Das Programm hängt somit in der Schleife solange fest, wie irgendein Fehler festgestellt wird und ein weiterer Betrieb des Systems wird wirksam gesperrt, wobei eine geeignete Fehleranzeige auf der LED-Anzeige gegeben wird.
Wenn der Echtzeit-Takt-Test erfolgreich ausgeführt wird, so tritt das Programm über die Nein-Verzweigung des Schrittes D1O aus und tritt in den Schritt D11 ein, in welchem ein Rückkehrbefehl ausgeführt wird, hierdurch kehrt das Programm auf die Selbsttest-Steuerschleife an der Stelle SEL FLP 4 ein, um den Befehl CA LL LPB KT ST auszuführen. Durch diesen Aufrufbefehl wird der MPC-Rückschleifen-Dialogtest unter der Subroutine E ausgelöst.
Rückschleifen-Dialogtest
Der MPC-Rückschleifen-Dialogtest wird durch die Subroutine E ausgeführt und ist in näheren Einzelheiten in dem Flußdiagramm gemäß Fig. 10 sowie in dem Mikroprogramm des Anhanges dargestellt-. Dieser Test dient der überprüfung der Dialogsteuerung 200, die beispielsweise durch den progranunierbaren Dialog-Schnittstellenmodul 2651 der Firma Signatics vorgegeben sein kann.
130037/0807
Die MPC-Dialog-Test-Subroutine E versetzt die Dialogsteuerung in eine örtliche Rückschleife/ wobei der Sender und der Empfänger miteinander verbunden sind. Durch Sendung und Empfang vorbestimmte Bitmuster und durch überprüfung der Resultate überprüft das Programm, ob die Steuerung richtig arbeitet oder nicht. Gemäß Fig. 10 wird im ersten Schritt E1 der Subroutine die LED-Anzeige auf den Wert OO 00 01 00 verändert, um zu signalisieren, daß der Rückschleifen-Dialogtest läuft.
In den Schritten E2 und E3 wird die Dialogsteuerung für eine lokale Rückschleifenoperation konfiguriert, wobei Unterbrechungen gesperrt sind. In den Schritten E4 und E5 wird ein "1"-Datenmuster übertragen, wobei das "1"-Bit in allen Bitpositionen verschoben wird. Danach wird ein komplementäres Datenmuster übertragen, wobei das "O"-Datenbit in alle Bitpositionen verschoben wird. Die empfangenen Datenmuster werden auf ihre Richtigkeit überprüft und irgendwelche falschen festgestellten Datenbits werden im Speicher gesammelt. Da ein Fehler bei diesem Test nicht als katastrophaler Fehler angesehen wird, werden die festgestellten Fehler angezeigt und gesichert, und es wird dem System gestattet, die Testoperation fortzusetzen.
Bei Beendigung des Rückschleifen-Dialogtestes bearbeitet das Programm den Befehl E7, durch welchen auf die Selbsttest-Steuerschleife zurückgekehrt wird. Hierbei wird der Befehl CA LL SIG MTRE ausgeführt, der den Auslösebefehl.für die ROM-Signatur-Berechnungs-Subroutine F bildet.
ROM-Signaturberechnung
Die Subroutine für die ROM-Signaturberechnung ist in näheren Einzelheiten in dem Flußdiagramm gemäß Fig. 11 dargestellt und wird durch die im Anhang aufgelisteten Befehle verwirklicht. Die Subroutine der Signaturberechnung bildet ein Mittel zur Überprüfung der programmierbaren Festwertspeicher PROM der Steuerung
130037/0807
30486U
MPC, die die System-Bearbeitungsfirmware speichern. Durch die Subroutine wird eine Signatur für jedes 1-Kilobyte innerhalb der Speicher PROM berechnet. Die Signatur wird in Form eines binär kodierten Dezimalwortes (BCD) mit acht Stellen berechnet, wobei dieses Wort den gleichen Wert haben sollte wie das in den programmierbaren Pestwertspeicher PROM eingebrannte Datenband. Ein Signaturwert von 76160070 ergibt sich für irgendein nicht existentes 1-Kilobyte innerhalb der Speicher PROM. Nicht-Fehler.-Zustände werden im Zusammenhang mit der ROM-Signaturberechnung erzeugt, da das hier beschriebene System keinen Vergleich der errechneten Signatur mit dem bekannten Signaturwert ausführt.
Im ersten Schritt F1 der Subroutine wird die LED-Anzeige auf 00 00 01 01 eingestellt, um zu signalisieren, daß die Subroutine der Signaturberechnung abläuft. Danach wird im Schritt F2 der Prozessor so eingestellt, daß er den Anfang des anfänglichen 1-Kilobyte in dem Speicher PROM adressiert. Im Schritt F3 wird ein Signaturwort erzeugt, in dem der Inhalt des Speichers PROM ausgelesen und die enthaltenen Datenbits in Übereinstimmung mit einem vorgeschriebenen Signaturberechnungsverfahren akkumuliert werden. Dieses Verfahren wird verwirklicht., indem zunächst der Signaturwert auf 00 00 00 00 (BCD) eingestellt wird. Danach wird der Signaturwert mit 2 multipliziert, und es wird ein erstes Datenbyte aus dem Speicher PROM ausgelesen und zu dem Gesamtwert addiert. Wenn diese Operation zu einem Übertrag aus der signifikantesten Ziffer des Gesamtwertes führt, so wird der binär-αβτ zimal-kodierte Wert 1 hinzuaddiert. Dieser Wert wird sodann zu dem Signaturwert und die Schritte B-D werden wiederholt, um das Berechnungsverfahren fortzusetzen.
Wenn 1024 Bytes aus dem Speicher PROM ausgelesen worden sind, und somit akkumuliert worden sind, so schreitet das Programm zu dem Schritt F4 fort, in welchem das errechnete Signaturwort in der Konfigurationstabelle gesichert wird. Dies geschieht durch Eingabe der 2 Byte-Verschiebeadresse des Speichers PROM in den Signatur-Sicherungsbereich und durch anschließende Eingabe
130037/0807
des 4 Byte-Signaturwortes (acht Ziffern in BCD-Darstellung). Danach wird der Signatur-Hinweiswert in den Signatur-Tabellenbereich verschoben.
Als nächstes wird im Schritt F5 die PROM-Hinweisadresse um 1 κ erhöht, um die Erzeugnung des nächsten Signaturwortes vorzubereiten. Wenn Signaturen für jeden 1K-Block des Speichers PROM errechnet worden sind, so schreitet das Programm zu dem Schritt· F7 fort und kehrt zu der Selbsttest-Steuerschleife zurück, um durch Bearbeitung des Befehles CAL IOTST die Subroutine G auszulösen.
E/A-Steuergeräte-Test
Der E/A-Steuergeräte-Test ist in den Flußdiagrammen gemäß den Figuren 12-14 näher dargestellt und wird durch die entsprechenden Befehle des Anhanges bearbeitet. In diesem Test wird der Steuerung-Selbsttest-Status festgestellt und sodann die Unterbrechungsantwort der Steuerung überprüft. Gemäß Fig. 12 wird die IOC-Schnittstellen-Abschnittnummer im Schritt G1 auf O gesetzt und danach die LED-Anzeige im Schritt G2 auf die Abschnittnummer und die Nummer 01 1O eingestellt, wodurch angezeigt wird, daß der E/A-Steuergeräte-Test abläuft.
Als nächstes wird die Subroutine G3 für den Steuerung-Selbsttest-Status ausgeführt. Diese Subroutine ist in dem Flußdiagramm gemäß Fig. 13 dargestellt. Im Schritt G3-1 liest das Programm die Identifikationsnummer der ersten Steuerung und sichert diese in der Konfigurationstabelle zusammen mit der E/A-Abschnittnummer. Im Schritt G3-2 wird sichergestellt, ob die Steuerung eine Selbsttestmöglichkeit aufweist. Wenn dies der Fall ist, so wird eine Selbsttestanweisung ausgegeben und das System wartet, bis die Steuerung den Test beendet hat. Wenn während der Steuerung-Selbsttestoperation Fehler festgestellt werden, so werden sie durch geeignete Hinweise angezeigt.
130037/0807
Danach wird im Schritt G3-3 der Steuerungsstatus in dem Sieherungsbereich des Speichers für die Konfigurationstabelle gesichert. Zwei Bytes der Steuerungs-Statuskonfigurationsdaten werden in dem Sicherungsbereich neben das zuvor eingegebene IOC-ABschnittsnummernbyte und das Steuerungs-Identifikationsbyte eingegeben. Danach schreitet das Programm zu dem Schritt G3-4 fort und bearbeitet einen Rückkehrbefehl, durch den der Schritt Gi (Fig. 12) ausgelöst wird und die Unterbrechungsantwort- und Beweisführungs-Test-Subroutine aufgehoben wird.
Die Unterbrechungsantwort- und Beweisführungs-Test-Subroutine ist in dem Flußdiagramm gemäß Fig. 14 dargestellt und wird durch die im Anhang angegebenen Befehle bearbeitet. Dieser Test überprüft die Unterbrechungsantwort für jede Steuerung und stellt fest, ob irgendein Prioritätsstreit zwischen benachbarten Steuerungen besteht. Ein Prioritätsstreit ergibt sich, wenn eine Steuerung, die einen Unterbrechungspegel fordert, in einem Schnittstellenabschnitt nach einer Steuerung angeordnet ist, die zwei Unterbrechungspegel fordert. Die Feststellung eines Unterbrechungsstreites führt in üem Programm zur Einschaltung der lichtemitierenden Diode LED-T2, um diesen Zustand des Unterbrechungsstreites zu signalisieren. Das Programm ordnet gemäß Fig. 14 zunächst einen Unterbrechungsvektor im Schritt G4-1 zu und gibt sodann eine Unterbrechungsanforderung an den ausgewählten Steuerabschnitt im Schritt G4-2 aus. Im Schritt G4-3 wird der festgelegte Unterbrechungspegel überprüft, um zu sehen, ob eine erwartete Antwort empfangen wurde und.wenn keine Antwort oder eine fehlerhafte Antwort aufgetreten ist, so verzweigt das Programm aus dem Schritt G4-3 über die Nein-Verzweigung zu dem Schritt G4-6, in welchem ein geeigneter Fehlerhinweis gesetzt wird.
Wenn die erwartete Unterbrechungsantwort festgestellt wird, so verlässt das Programm den Schritt G4-3 über die Ja-Verzweigung zu dem Schritt G4-4 und prüft, ob die Anzahl der empfangenen Unterbrechungen dem Wert O entspricht. Ist dies der Fall, so ver-
. . 130037/0807
zweigt das Programm zu dem Schritt G4-7, in welchem der ünterbrechungs-Antwortstatus in der Konfigurationstabelle gesichert wird. Wenn die Anzahl der empfangenen Unterbrechungen nicht dem Wert O entspricht, so nimmt das Programm die Nein-Verzweigung aus dem Schritt G4-4 und schreitet zu dem Schritt G4-5 fort, in welchem festgestellt wird, ob die Steuerung in dem vorangehenden Schnittstellenabschnitt zwei Unterbrechungen erfordert. Wenn dies mit nein beantwortet wird, so verzweigt das Programm zu dem Schritt G4-7, um den Unterbrechungs-Antwortstatus für die Konfigurationstabelle zu bilden. Bejahendenfalls schreitet das Programm zu dem Schritt G4-6 fort und setzt einen geeigneten Fehlerhinweis .
Im Schritt G4-7 gibt das Programm ein einzelnes Unterbrechungs-Statusbyte in den Speicherplatz der Konfigurationstabelle für die getestete Steuerung ein. Das Unterbrechungs-Statusbyte ist ein Byte mit acht bit, wobei die Bits 0-5 den Unterbrechungspegelwert anzeigen, das Bit 6 anzeigt, ob der Unterbrechungstest durchlaufen wurde oder fehlschlug und wobei das Bit 7 die Anzahl der Unterbrechungspegel der Steuerung anzeigt.
Nach Beendigung der Unterbrechungsantwort und dem Streittest für die ausgewählte Steuerung schreitet das Programm zu dem Schritt G5 (Fig. 12) fort und erhöht die Schnittstellen-Abschnittsnummer. Wenn alle Schnittstellenabschnitte in der zuvor beschriebenen Weise getestet worden sind, so schreitet das Programm zu dem Schritt G7 fort, in welchem die lichtemittierende Diode LED-12 eingeschaltet wird, wenn ein Unterbrechungs-Testfehler festgestellt worden ist. Danach schreitet das Programm zu dem Schritt GH fort, in welchem ein Rückkehrbefehl ausgeführt wird. Dadurch kehrt das Programm zu der Selbsttest-Steuerschleife zurück, wobei durch den Befehl CA LL SYS CN FG die Subroutine A für die System-Konfigurationsbildung ausgelöst wird.
130037/0807
■30A86U
- 29 System-Konfigurationsbildung
Die Subroutine Η für die System-Konfigurationsbildung ist in dem Flußdiagramm gemäß Fig. 15 dargestellt und wird durch die entsprechenden Befehle des Anhangs bearbeitet. Durch den anfänglichen Schritt H1 wird die LED-Anzeige auf den Wert 00 00 01 11 eingestellt, wodurch signalisiert wird, daß die Subroutine für die System-Konfigurationsbildung abläuft* Danach werden die drei Befehle h2, H3und H4 bearbeitet. Jeder dieser Befehle ist ein Aufruf, befehl, auf welchen ein Rückkehrbefehl folgt. Der endgültige Rückkehrbefehl H5 verursacht ein Verlassen der Subroutine durch das Programm und eine Rückkehr zu der. Selbsttest-Steuerschleife, um den Befehl CA LL TST STS auszuführen und die Subroutine I auszulösen. Diese Subroutine umfaßt die Schritte 10, 11 und 12 gemäß Fig. 4 und die entsprechenden Befehle der Programmliste.
Im Schritt IO stellt das Programm fest, ob irgendwelche Testfehler während der Selbsttestroutine festgestellt wurden. Wenn Fehler festgestellt wurden, so verzweigt das Programm über die" Nein-Verzweigung und bearbeitet den Schritt 12, um die lichtemittierenden Dioden in der Anzeige 112 abzuschalten. Wenn irgendwelche Fehler festgestellt wurden, so bearbeitet das Programm den Schritt 11, um das geeignete Fehlermuster auf der LED-Anzeige 112 anzuzeigen. Wie zuvor beschrieben, werden neun lichtemittierende Dioden benutzt. Die lichtemittierenden Dioden LED 1-4 zeigen die Selbsttest-Subroutine an, die den Fehlerzustand festgestellt hat. Die Subroutinen werden auf den lichtemittierenden Dioden 1-4 gemäß folgender Tabelle angezeigt:
00 01 - CPU-Test
00 10 - RAM-Test
00 11 - Echtzeit-Takt-Test
01 00 - Rückschleifen-Dialogtest 01 01 ■ - ROM-Signaturberechnung 01 10 - E/A-Steuergeräte-Test
01 11 τ System-Konfigurationsliste
10 00 - fortschreitende Firmwareauslösung 13003770807
30486U
j Die lichtemittierende!* Dioden 5-8 zeigen die Abschnittnummer der
Steuerung, bei der uer Fehler festgestellt wurde. Eine Anzeige von OO 00 durch die Dioden 5-8 zeigt an, daß der Fehler in der Steuerung MPC während eines MPC-Testes festgestellt wurde. Die Diode LED-12 gibt einen Hinweis auf einen Unterbrechungs-Prioritätsstreitfehler.
Danach verlässt das Programm die Selbsttestroutine über die Schritte K, L, M und N. Im Schritt K stellt das Programm fest, OD die Diagnoseoperation fortzusetzen ist und, bejahendenfalls, geht das Programm zu einer Diagnoseüberwachungs-Subroutine L weiter. Wenn die normale Systemoperation auszulösen ist, so verlässt das Programm den Schritt K über die Nein-Verzweigung und schaltet im Schritt M die lichtemittierende Diode LED-4 ein und fährt fort, die Anwendungs-Firmware-Subroutine N zu bearbeiten.
Es ist somit ersichtlich, daß bei jeder Systemeinschaltung die Selbsttestroutine bearbeitet wird, um die Funktionsfähigkeit des Systems zu überprüfen und eine Konfigurationsliste für die laufende Systemkonfiguration und Statusdaten zu bilden. Diese Daten sind verfügbar für das Betriebssystem und die Anwendersoftware, um festzustellen, wo die verschiedenen E/A-Steuergeräte vorliegen und was ihr laufender Status ist. Das externe Steuersystem kann somit festlegen, wie seine eigenen Unterbrechungsvektoren, Pegel und E/A-Geräte zuzuordnen sind, um ihren eigenen Zugriff auf die Steuerungen zu ermöglichen und ihr Verfahren für den Fall zu ändern, daß Teile des Systems nicht funktionsfähig sind.
130037/0807
ANHANG
(C) COPY RIGHT INCOTERM CORP (1979) ALL RIGHTS RESERVED
3Q485U
DEFINE SEGMENTS ;DEFINE DATA SEGMENT !BEGINNING OF PARA O EQU FOR DISPLAY A LOGICAL 1I1 EXTINGUISHES THE LED ΧΌ3801 1I' HERE CORRESPONDS TO LIT LED
DATASG SEGMENT Γ AT O ;DEFINE PTR TO CODE SEGMENT •,BEGINNING OF PARA F EQU A LOGICAL 1O1 LIGHTS THE LED STCA ;8088 CPU TEST
DATASG ENDS SELF TEST LED DISPLAY PATTERN EQU WHEREAS A LOGICAL ' SELFSTS+1 ;RAM TEST
CODEGP GROUP CODESG CS:CODEGP,DS:DATASG ,SS:DATASG,ES:DATASG NOTE: EQU Ol RAMSTS+1 ;REAL TIME CLOCK TEST
ASSUME PROGRAM VARIABLES EQU 02 LPBKSTS+1 iMPC LOOP-BACK COMM. TEST
DEFINE O - : EQU 03 IOSTS+1 ;R0M SIGNATURE CALCULATIONS
PARAO EQU OFOOOH EQU 04 CSLFSTS+1 !CONTROLLER I/O TEST
PARAF EQU EQU 05 IRSTS+1 ;SYSTEM CONFIGURATION CREATION
06 MEMPTR+4 !FIRMWARE INITIALIZATION IN PROGRESS
07 MEMSZ+2
08 SIGPTR+4 •,BOTTOM OF STCA
SELF TEST CONTROL AREA SIGSZ+2 •,SELF TEST STATUS BYTE
LEDCPU EQU IOPTR+4 ;IOC RAM TEST STATUS BYTE
LEDRAM EQU IOSZ+2 !MPC COMM LOOPBACK STATUS BYTE
LEDRTC EQU SLOT0+1 il/O TEST STATUS BYTE
LEDCOMM . EQU PARAG+1 !CONTROLLER SELF TEST STS BYTE
LEDSIG EQU BLOCKG+l !INTERRUPT RESPONSE STS BYTE
LEDIO EQU CNFGBLK+1 iPTR TO MEMORY CNFG TABLE
LEDCNFG EQU 0FF16+1 iSIZE OF MEM CNFG TABLE
LEDINlT EQU G00D16+1 !PTR TO SIG CNFG TABLE
EQU IOSLOT+1 !SIZE OF SIG CNFG TABLE
STCA EQU INTRCV+1 iPTR TO IO CNFG TABLE
SELFSTS EQU INTSPUR+1 •,SIZE OF IO CNFG TABLE ■
RAMSTS EQU INTPRV+1 iIOC INTERFACE SLOT #
LPBKSTS EQU LEDPTRN+1 !PARAGRAPH #
I OSTS EQU ;16K BLOCK # WITHIN A PARA
CSLFSTS EQU -,FLAG FOR TEST OF CNFG BLOCKS
IRSTS EQU •,OFFSET ADR PTR TO 16K BLOCK
MEMPTR EQU !FLAG FOR A GOOD 16K BLOCK
MEMSZ EQU !SLOT 1 THAT FAILS IO TEST
SIGPTR EQU •,INTERRUPT RECV INDICATOR
SIGSZ · EQU -,SPURIOUS INTERRUPT INDICATOR '
IOPTR EQU ;# OF IL1S REQUIRED BY PREVIOUS SLOT
IOSZ EQU •,LED PATTERN AT THE END OF SELF TEST
SLOT(S EQU ;END OF SELF TEST CONTROL AREA
PARA(? EQU
BLOCKE EQU
CNFGBLK
0FF16
G00D16
IOSLOT
INTRCV
INTSPUR
INTPRV
LEDPTRN
STCAEND
130037/0807
MPC RAM LOCATIONS
MPCRAMT EQU X'03Ff STCAEND 1 ;TOP OF MPC RAM O ;READ RECV HOLDING REG
MPCRAMB EQU X1OOOO1 SIG+8 2 ;BOTTOM OF MPC RAM O ;READ STATUS REG
MPCRAMS EQU ΧΌ400' SIGR2+2 3 ;SIZE OF MPC RAM ;READ MODE REG 1/2
STACKH EQU XO17F· SIGR3+2 4 ;TOP OF STACK AREA ;READ COMMAND REG
SIGTBL EQU ΧΌ180' ROMADR+2 5 ;BOTTOM OF SIGNATURE TABLE iWRITE X-MIT HOLDING REG
IOTBL EQU SIGTBL+192 1024 6 jBOTTOM OF IO CNFG TABLE -,WRITE SYNl (SYN2)/0LE REG
MEMTBL EQU IOTBL+64 CONTROLLER ID DEFINITIONS 7 ;B0TT0M OF MEMORY CNFG TABLE ;WRITE MODE REG 1/2
SIGNATURE WORK AREA EQU 30RT DEFINITIONS ;WRITE COMMAND REG
SIG EQU EQU 1 ;8 BYTE BUFFER- FOR SIGC ROUTINE
SIGR2 EQU EQU X'20' ;2 BYTE BUFFER FOR SIGC ROUTINE •,PORT # FOR ID READ
SIGR3 EQU EQU X'21' ;2 BYTE BUFFER FOR SIGC ROUTINE ;PORT # TO READ CONFIGURATION
ROMADR EQU EQU X'611 ;ROM ADDRESS
SIGBUF EQU EQU X'62" ;SAVE PTR TO SIG CNFG TABLE HERE ;PORT # TO SEND INTERRUPT REQUEST
ROMSIZE EQU EQU O ;R0M SIZE (=1K) ;PORT # FOR BASE ADR
MPC I/O I O
KBDID EQU O ;KEYBOARD ID ;PTR TO DIAGNOSTIC MONITOR
MCRlD EQU ;MAG CARD READER ID ;PTR TO FIRMWARE ENTRY
PRTID EQU •,PRINTER ID
CRTID EQU ;CRT ID
COMID EQU ;C0MM CONTROLLER ID
MPCID EQU ^ICRO-PROCESSOR CONTROLLER
MEMID EQU ;MEMORY BOARD ID
EQU
SWTCH MPC 2651 ;SWITCH BUFFERPORT
LEDPORTA EQU ;PORT A OF DIAG PROM
LEDPORTB EQU ;PORT B OF DIAG PROM
TIACKPT EQU ;SEND TEST INT ACK TO ALL IOC'S
TESTCMPT EQU ;SEND ENABLE INT TEST TO ALL IOC'S
ENBRTC EQU ;ENABLE RTC
DSBRTC EQU ;DISABLE RTC
CLRRTC EQU iCLEAR RTC INTR
EQU COMMUNICATIONS PORT DEFINITIONS
COMMO SUB-PORT X'30'
COMMl EQU X'311
C0MM2 EQU X'32'
C0MM3 EQU X'33'
C0MM4 EQU X'341
COMM5 EQU X'35'
COMM6 X'36'
C0MM7 X'37'
DEFINITIONS
IDPORT O
CNFGPRTl 1
CNFGPRT2 2
INTTST 3
BASEPORT 4
EXTERNALLY DEFINED LABELS
DlAGMON EQU
FIRMWARE EQU
130037/0807
30486H
CODESG
SELFLP2:
SELFLP3:
SELFLP4:
SELFLP5:
OTHER SYMBOLS 8
;RTC INTERRUPT LEVEL
POWER-UP/RESTART BEGINS HERE SEGMENT AT OFOOOH
ORG OFFFOH
OMP FAR PTR SELFTST
SELF TEST CONTROL LOOP SELF TEST BEGINS HERE
;BEGINNING OF CODE SEGMENT
INITIALIZATION
ORG OFOOOH 1 ASSIGN DATA SEGMENT
PROGNM DB '7712 SELF TEST1 ASSIGN STACK SEGMENT
SELFTST: NOP SET STACK PTR TO TOP OF STACK 1
MOV AX,PARAO INSTRUCTION
MOV DS,AX ; GET LED PATTERN FOR CPU TEST
MOV SS,AX ; COMPLEMENT TO LIGHT LED'S
MOV SP ,STACKH ; LIGHT UP PAnERN ON LED1S J
TEST 8088 CPU -^- ONE TEST 8088 CPU i
SELFLPl: IMOV AL,LEDCPU I ; CPU ERROR IF COME HERE
NOT AL ;
OUT LEDPORTA,AL ;
JMP CPUTST
CPUHLT: HLT
TEST RANDOM ACCESS MEMORY
JMP MEMTST
TEST REAL TIME CLOCK CALL RTCTST ON-BOARD LOOPBACK TEST FOR MPC 2651 COMM CONTR CALL LPBKTST CALCULATE ROM SIGNATURES CALL SIGNTRE TEST CONTROLLER I/O INTERFACE
CALL IOTST
CREATE SYSTEM CONFIGURATION CALL SYSCNFG SET LED PAHERN FOR SELF TEST STATUS CALL TSTSTS
130037/0807
EXIT FROM SELF TEST
IN AL,SWTCH
SAL AL.l
JAE DIAGMON
MOV AL1M[LEDPTRN]
OR AL ,8
NOT AL
OUT LEDPORTA,AL
JMP FIRMWARE
30486H
;READ SWITCH BUFFER STS ;CF = EXIT MODE, O = FIRMWARE MODE ;CF = 1 -> DIAGNOSTIC MODE ;AL = COPY OF LED DISPLAY ;ADD BIT TO TURN-ON FIRMWARE LED
;DISPLAY PATTERN ON LED1S ;EXIT TO FIRMWARE
END OF SELF TEST CONTROL LOOP
8088 CPU TEST
CPUERR:
CPUTST
CPUTl:
CPUTlA:
CPUT2
JMP EQU
CPUHLT
-,DEFINE PTR TO CPUHLT
BUS INTERFACE UNIT TEST
-BY SELECTIVE OPCODE AND OPERAND FETCH
MOV DX.055AAH
MOV AL,OAAH
CMP AL, DL
JNZ CPUERR
JZ SHORT CPUTlA
JMP CPUERR
MOV CH.055H
CMP CH,DH
JNZ CPUERR
CMP DX,55AAH
JNZ CPUERR
;DH = 55, DL = AA ;AL = AA ;BOTH AL & DL MUST HAVE AA !OTHERWISE CPU ERROR •,DO THIS JUST IN CASE JNZ DOESN'T WORK ;IF COME HERE THEN CPU PROBLEM ;CH = 55 ;CH = DH?
jCOMPARE WITH IMMEDIATE DATA FETCH ;IF NOT EQUAL THEN CPU ERROR
B1
EXECUTION UNIT TEST
TEST DATA TRANSFER
EQU $
TEST INDIRECT DATA X-FER THRU BX
USES DATA (= X155AA1) DEFINED A BYTE AFTER CPUTl
LDS CPUTl ;SET SEGMENT & OFFSET ADDRESS
MOV AL,M[BX+1] ;READ BYTE USING INDIRECT WITH DISP. ADDR
INX BX ;OFFSET POINTS TO DATA BYTE
MOV DX,M[BX] ;READ WORD THRU INDIRECT ADDR
MOV SI,1 ;SET INDEX REG TO 1
CMP DX.55AAH ;DX MUST BE 55AA
JNZ CPUERR ;OTHERWISE DATA X-FER ERROR
MOV AH,M[BX+SI] -,READ BYTE USING INDEXED INDIRECT ADDR
CMP AX1DX ;AX & DX MUST NOW BE EQUAL
JNZ CPUERR OTHERWISE DATA X-FER ERROR
TEST EXCHANGE OF DATA BETWEEN REGISTERS
B2
XCHG
CMP
JNZ
INC
XCHG
CMP
JZ
CX ,AX
CX ,DX
CPUERR
CX
CX1AX
AX ,DX
CPUERR ;TEST EXCHANGE OF DATA ;CX ? DX ;ERROR IF IMPROPER EXCHANGE -,MODIFY CX ;EXCHANGE DATA AGAIN ;AX & DX MUST NOW BE DIFFERENT !OTHERWISE ERROR
130037/0807
30486U
TEST DATA TRANSFER USING SEGMENT OVER-RIDE PREFIX
LEA SI1CPUTl ;SI = PTR TO CPUTl CPUT3L CPUERR ;AL=O, SF=OFK), ZF=PF=I I ;AX»0102H
MOV AX,CS:[SI+1] ;INDEXED READ USING SEGMENT OVER-RIDE CPUERR $ •JEST JUMP ON ZERO ;BX=0408H
CMP AX,DX -,AX & DX MUST HAVE SAME DATA AX ARITHMETIC & LOGIC •,ERROR IF COME HERE ;DX=1020H
JNZ CPUERR jOTHERWISE CPU ERROR CPUT3J $ ;TEST JUMP ON PARITY EVEN ;CX-0100H
TEST CONTROL TRANSFER LOOPNZ CPUT3M AX,0102H
CPUT3 EQU $ JMP BX,0408H ;TEST JUMP ON NOT-OVERFLOW
CALL CPUT3A ;TEST CALL CONTROL TRANSFER EQU DX,102OH
JMP CPUERR ;ERROR IF COME HERE TEST , CX.100H ;TEST JUMP ON NOT-SIGN
TEST CONDITIONAL CONTROL TRANSFER EQU
CPUT3A: XOR AL,AL MOV ;AL=FF, ZF=O, SF=OF=CF=AF=PF=I
JZ CPUT3B MOV ;ERROR IF ZF IS SET
JMP CPUERR MOV ;ERROR IF SF=O
CPUT3B: JP CPUT3C MOV •,ERROR IF OF=O
JMP CPUERR ;ERROR IF PARITY ODD
CPUT3C: JNO CPUT3D ;TEST JUMP ON NOT ZERO
JMP CPUERR ;ERROR IF COME HERE
CPUT3D: JNS CPUT3E ;TEST JUMP ON SIGN
JMP CPUERR ;ERROR IF COME HERE
CPUT3E: SUB AL, 1 ;TEST JUMP ON CF=I
JZ CPUERR
JNS CPUERR ;CF=O
JNO CPUERR ;TEST JUMP ON CF=O
JNP CPUERR ;ERROR IF COME HERE
JNZ CPUT3F TRANSFER
JMP CPUERR ;SET COUNT REG CX=O
CPUT3F: JS CPUT3G ;TEST JUMP ON CX ZERO
JMP CPUERR •,ERROR IF COME HERE
CPUT3G: JNAE CPUT3H ;AL-O, ZF=I
JMP CPUERR ;TEST LOOP ON NOT O (THIS SHOULDN'T OCCUR)
CPUT3H: CLC ;TEST LOOP ON O (THIS JUMP SHOULD OCCUR)
JAE CPUT3I ;ERROR IF COME HERE
JMP CPUERR ;AX=1, ZF-O
TEST ITERATION CONTROL ;ERROR IF THIS JUMP IS TAKEN
CPUT3I: MOV CX,O ;ERROR IF THIS JUMP IS NOT TAKEN
JCXZ CPUT3K
CPUT3J: JMP CPUERR
CPUT3K: XOR AL,AL UNIT
LOOPNZ CPUT3J
LOOPZ
JMP
CPUT3L: INX
LOOPZ
CPUER:
CPUT3M
CPUT4
130037/0 807
30486H
CPUT4A:
CPUT4B:
PERFORM SOME ALU BYTE OPERATIONS 256 TIMES
THUS REG'S AX, BX, AND DX SHOULD REMAIN UNCHANGED
INC BL ;BL=BL+1 TEST INCREMENT $ ;SET LOOP COUNT TO 256H
DEC BH ;BH=BH-1 TEST DECREMENT STRING ;TEST WORD INCREMENT
ROR AL1I ;TEST ROTATE RIGHT ES:CODESG
RCL AH,1 ;TEST ROTATE LEFT THRU CARRY AX ,CS !THUS AX IS UNCHANGED
RCL AH1I •,TEST ROTATE LEFT THRU CARRY ES ,AX !ROTATE RIGHT CLOSED
NOT DL iDL=-DL TEST NOT OPERATION D I, PROGNM !THUS DX IS UNCHANGED
ADD DH ,DL ;DH=DH+DL TEST ADDITION ;DX=1122H, AX-0102H
LOOP CPUT4A !REPEAT 256 TIMES ;DX=1020H, AX=0102H
CMP AX.0102H lAX=102H? ;IS BX = 0408?
JNZ CPUER ;ALU ERROR IF NOT EQUAL !ERROR IF NOT
OR CL,CH !CL & CH MUST BE ZERO ;DX MUST BE O
JNZ CPUER !OTHERWISE ERROR !OTHERWISE CPU ERROR
TEST DL ,20H ;IS DL = 20? ;AX MUST NOW BE O
JNZ GPUER !ERROR OTHERWISE !OTHERWISE ERROR
XOR DH, DL ;DH=30H
TEST DH ,30H ;IS DH = 3OH?
JNZ CPUER !ERROR OTHERWISE
PERFORh 1 SOME ALU WORD OPERATIONS 256 TIMES ;THIS IS FOR ASSEMBLER
MOV CX.100H ;AX = CODE SEG REG
INC BX ;SET EXTRA SEG EQUAL TO CODE SEG
DEC AX !DI = PTR TO STRING
INC AX
ROR DX1I
SAL DX,1
OR DX1AX
XOR DX1AX
TEST BX,0408H
JNZ CPUERR
CMP DX, 1020H
JNZ- CPUER
AND AX ,DX
JNZ CPUER
TEST STRING MANIPULATION
EQU
SCAN A
ASSUME
MOV
MOV
MOV
B4
B5
SCAN STRING FORWARD FOR A BYTE MATCH
CLD
MOV
MOV
REP
SCAS
CMP
JNE
AL1 1S1 CX, 14
AL,8 CPUER
■,CLEAR DF TO SCAN FORWARD
;AL = 1S'
iCX = LENGTH OF STRING !REPEAT NEXT STRING OPERATION ;SCAN UNTIL 1S1 OR CX ZERO
;CL MUST BE 8
!OTHERWISE STRING MANIPULATION ERROR
130037/0807
MEMTST MEMTSTl MEMTST2
MEMTST3
MEMTST4
SCAN BACKWARDS FOR A WORD MATCH
STD DI1SELFTST-I ;SET BACKWARD DIRECTION
MOV CL,14 ;DI = PTR TO END OF STRING
MOV AX,'12' ;COUNT = 7 WORDS
MOV SCAS ;AX = WORD TO BE SCANNED
REP CL,2 •,REPEAT SCAN UNTIL '12' OR CX=O
CMP CPUER ;COUNT MUST BE 2
JNE OF CPU TEST OTHERWISE CPU ERROR
END SELFLP2
JMP RANDOM ACCESS MEMORY CONTINUE WITH SELF'TEST
TEST
30A86U
NO RETURN ON CATASTROPHIC FAILURES
EQU $
TEST RAM RESIDENT ON THE MICROPROCESSOR BOARD
MOV ' AL,LEDRAM ;GET PATTERN FOR RAM TEST
NOT AL COMPLEMENT TO LIGHT LED
OUT LEDPORTA,AL ;DISPLAY TEST RUNNING
JMP MPCRAM ;TEST MPC RAM
OR AL ,AL ;IS MPC RAM OK?
JNZ MEMTSTl ,REPEAT IN CASE OF ERRORS
B6
NOW MPC RAM CAN BE USED AS SELF TEST CONTROL BLOCK, STACK AND WORK AREA
;CLEAR AX
;ASSIGN STACK SEGMENT •,ASSIGN DATA SEGMENT ;ASS1GN EXTRA SEGMENT ;SET STACK PTR
XOR AX »AX GO0D16],AL
MOV SS ,AX SLOTP],AL
MOV DS,AX 1RAMSTS],AL
MOV ES ,AX MEMSZ]1AX
MOV SP ,STACKH AX,MEMTBL
PREPARE FOR IOC RAM TEST M[MEMPTR],AX
EQU $ AL ,X1IO'
MOV AX,O M[PARAO],AL
MOV M FOR A MEMORY CONT
MOV M $
MOV M DL,IDPORT
MOV M DH ,M[SLOT(?]
MOV AL ,DX
MOV AL,X'3F'
MOV AL,MEMID
MOV MEMTST9
SEARCH
EQU
MOV
MOV
IN
AND
CMP
JNZ
Y INITIALIZATION
;CLEAR AX
;CLEAR GOOD 16K BLOCK FLAG ;INIT IOC SLOT # TO O ;CLEAR TEST STATUS BYTE ;CLEAR MEMCNFG TABLE SIZE
;INIT PTR TO MEM CNFG TABLE ,HIGH NIBBLE OF AL * PARAGRAPH #
;INIT FOR NEXT PARA ADR SPACE AVAILABLE^
;DL ■= PORT # FO ID READ
;DH = SLOT #
;AL = CONTROLLER ID
;MASK-OFF UNNECESSARY BITS ;IS IT A MEM CONTR?
;N0, THEN CONTINUE SEARCH
130037/0807
A MEMORY CONTR HAS BEEN DETECTED GET ITS CONFIGURATION & UPDATE LED DISPLAY
30A8614
MEMTST5 EQU $
MOV DL.CNFGPORT
IN AL, DX
NOT AL
AND AL,X'O3'
CMP AL,X'O3'
JNE SHORT MEMTST5A
INC AL
MEMTST5A EQU $
MOV M[CNFGBLK],AL
MOV AL1M[SLOTO]
MOV CL,4
SAL AL ,CL
OR AL, LEDRAM
NOT AL
OUT LEDPORTA.AL
;AL = MEM CONFIG BYTE !FOLLOWING IS TO CONVERT ID TO i? OF 16K BLOCKS ;RETAIN ONLY USEFUL BITS
,.SAVE MEMORY CONFIG (# OF 16K BLOCKS) ;AL = SLOT #
,HIGH NIBBLE OF AL = SLOT # ;GET RAM TEST # ,COMPLEMENT TO LIGHT UP LED1S ;UPDATE LED DISPLAY
ASSIGN BASE ADDR TO MEMORY CONTR INIT TEST PARAMETERS
MEMTST6 EQU $ C8 ;AL = O -,SET DATA SEG TO PARAO
MOV AL,O ;AX = BASE ADDR AT 64K BOUNDARY ;MX = PTR TO MEM CNFG TABLE
MOV AH ,M[PARAG] ;DI = # OF ENTRIES
MOV DL ,BASEPORT ;DX = PORT ADR TO WRITE BASE ADR
MOV DH ,M[SLOTG] ;ASSIGN BASE ADDR TO MEM CONTR ;ADJUST DI FOR ENTRY OF 4 BYTES
OUT AX ,DX ,INIT OFFSET ADR FOR 16K BLOCK -,SAVE RAM BLOCK TEST STATUS BYTE
MOV M[0FF16],0 ;INIT TO MAX1M # OF BLOCKS ON A MEM CONTR 1
MOV M[BLOCK(P] ,4 ,SAVE SLOT # BYTE
TEST 16K BYTE OF IOC RAM ;AL = O
MEMTST7 EQU $ ;AH = BASE ADR OF MEM CONTR
CALL IOCRAM ;ADD OFFSET ADR OF 16K BYTE BLOCK '
TEST DL4O
JNZ SHORT MEMTST7A
MOV M[G00D16],l
MEMTST7A EQU $
OR M[RAMSTS],DL )C9
•JEST 1 BLOCK J
SAVE ;IS RAM BLOCK GOOD? CIO
MOV
MOV ,SET FLAG FOR A GOOD BLOCK
MOV
MOV ACCUMULATE RAM TEST RESULT
SAL ENTRIES FOR CONFIG TABLE
SAL AX, PARAG
MOV DS,AX
MOV BX,M[MEMPTR]
MOV DI,M[MEMSZ]
MOV DI,1
MOV DI ,1
ADD M[BX+DI+3],DL ;ENTER ADDR FIELD
MOV AL,M[SLOTG] -,INC TABLE SIZE
INC M[BX+DI+2],AL ;FORM OFFSET TO NEXT BLOCK
ADD AL,O
AH ,M[PARAG]
AH,M[0FF16]
M[BX+DI],AX
WORD PTR M[MEMSZ]
M[0FF16],X'40(
1300 37/080 7
30486H
IS THERE MORE RAM ON CONTR?
DEC M[BLOCKP] ;IS 64K BYTE TESTED? ι
JZ MEMTST8 ;YES, THEN EXIT
DEC M[CNFGBLK] ;ARE ALL CNFG BLOCKS TESTED?
JNZ MEMTST7 ;N0, THEN TEST THEM
CALL RAM? !DETERMINE IF MORE RAM ON CONTR
OR DL ,OL •,DOES SELF TEST DETECT MORE RAM?
JNZ MEMTST7 !VERIFY ANY MORE RAM
COME HERE AT THE END OF ONE CONTROLLER
MEMTST8 EQU $
ADD M[PARA@],X'1O' iFORM NEXT PARA ADDR AVAILABLE
MEMTS Γ9 EQU $
INC M[SLOTI?] ;POINT TO NEXT IOC SLOT
CMP M[SLOTB] ,10 ;ARE ALL SLOTS TESTED?
JLE MEMTST4 ;N0 THEN CONTINUE SEARCH
C11
ALL AVAILABLE RAM HAS BEEN TESTED IS THERE A GOOD 16K BLOCK OF RAM?
TEST JNE
M[G00D16],l MEMTST3
END OF MEMORY TEST JMP SELFLP3
;IS GOOD BLOCK FLAG SET? ;N0, THEN REPEAT IOC RAM TEST
CONTINUE WITH NEXT TEST
}C13
}C14
C15
130037/0807
MPCRAM
MPCRAM(P:
MPC RAM TEST ERROR ;CX = DATA BITS IN ERROR
ON RETURN: DL = O NO : DL > O ACCUMULATED ;SET
$ ;PARA MPC RAM SIZE
EQU CX ,MPCRAMS ;BP = BOTTOM ADDR OF RAM
MOV BX,MPCRAMB ;TEST
LDS DH,O RETURN ADDRESS
MOV BP1MPCRAMI? DESIRED RAM
MOV RAMTST
JMP
JMP MEMTST2 ;RETURN TO CONTINUE MEM TEST TEST 16K BYTE BLOCK OF IOC RAM
IOCRAM
IOCRAM0:
RAM?:
RAM?1:
RAM?2:
ON RETURN: DL = O NO ERROR
: DL > O ACCUMULATED ERROR BITS
EQU MOV MOV MOV MOV MOV JMP RET
BL,O
BH,M[0FF16]
CX ,X'4000'
DH ,M[PARAI?]
BP.IOCRAMI?
RAMTST
;BX = OFFSET ADR TO RAM TO BE TESTED ;CX = SIZE OF RAM TO BE TESTED ;DH = PARA # WHERE RAM IS LOCATED ;BP = RETURN ADDRESS
•JEST 16K BLOCK OF RAM
;RETURN
ROUTINE TO SEARCH FOR RAM IN NEXT 16K BYTE BLOCK
ON RETURN:
DL = O NO RAM DETECTED DL = 1 RAM DETECTED
RELIES .ON THE FACT THAT A REFERENCE TO ANY NON-EXISTENT RAM LOCATION RESULTS IN ALL DATA BITS BEING I1S (I.E., DATA = -1) USE 16 LOCATIONS FOR THIS CHECK
;SAVE DATA SEG VALUE CII
;BX = PARA # ADDR
;SET DATA SEG TO WHERE RAM IS TO BE SEARCHED •,START WITH FLAG FOR RAM PRESENT
;CX = LOCATION COUNTER
;BX = PTR TO BOTTOM OF BLOCK
;WRITE SOMETHING TO LOCATION
;TEST FOR NON-EXISTENT MEMORY
-,EXIT IF RAM IS PRESENT
•,POINT TO NEXT LOCATION
lLOOP FOR 16 LOCATIONS
;SET INDICATOR TO NO RAM
•,RESTORE DATA SEG .
;RETURN
PUSH DS
MOV BL,O
MOV BH,M[PARAg]
MOV DS, BX
MOV DL,1
MOV AL.X'691
MOV CX, 16
MOV BH,M[0FF16]
MOV M[BX],AL
TEST M[BX],X1FF'
JNZ RAM?2
INC BX
LOOP RAM71
MOV DL,O
POP DS
RET
130037/0807
TEST RAM
30485U
RAMTST
RAMTSTl:
RAMTST2:
RAMTST3:
ON ENTRY : BX = OFFSET ADR OF RAM TO BE TESTED : CX = SIZE OF RAM TO. BE TESTED :· DH = PARA # WHERE RAM RESIDES : BP = RETURN ADDRESS
ON RETURN: DL = O DL > O $ NO ERROR
DL,O ACCUMULATED ERROR BITS
EQU DS ,DX
MOV SI,CX •,CLEAR ERROR INDICATOR
MOV DI ,BX ;ASSIGN DATA SEGMENT
MOV TEST PATTERN ;SAVE RAM SIZE IN SI
MOV AL ,BH iSAVE RAM ADR IN DI
WRITE AL,BH ■ (MSB - LSB) OF TEST ADDR + PARA #
MOV AL ,DH ;AL = MSB OF TEST ADDR
SUB M[BX],AL ;AL = MSB-LSB OF TEST ADR
ADD BX ;AL = TEST PAHERN
MOV RAMTSTl ;WRITE PATTERN TO TEST ADDR .
INC DATA PAHERN ;POINT TO NEXT ADDR
LOOP CX ,SI •,REPEAT FOR ENTIRE RAM
VERIFY BX ,DI AND COMPLEMENT PREVIOUS DATA
MOV AL ,BH ;CX = RAM SIZE
MOV AL,BL ;BX = PTR TO BOTTOM OF RAM
MOV AL ,DH ;AL = MSB OF TEST ADDR
SUB AL1M[BX] ;AL = MSB-LSB OF TEST ADR
ADD DL ,AL ;AL - EXPECTED TEST PATTERN
XOR M[BX] ;VERIFY LOCATION, AL * O -> NO ERROR
OR BX ACCUMULATE ANY FAILED DATA BITS
NOT RAMTST2 •,COMPLEMENT TEST PAHERN
INC ;POINT TO NEXT TEST ADDR
LOOP ;VERIFY ENTIRE RAM
C2-2-0 C2-2-1
hC2-2-2
C2-2-3, C2-2-4, C2-2-5
VERIFY COMPLEMENTED DATA PATTERN IN REVERSE ORDER ALSO CLEAR MEMORY TO ZERO
MOV CX.SI
DEC BX
MOV AL,BH
SUB AL ,BL
ADD AL,DH
NOT AL
XOR AL ,M[BX]
OR · DL ,AL
MOV M[BX] ,0
LOOP RAMTST3
END OF RAM TEST
;CX = RAM SIZE
;POINT TO PREVIOUS TEST ADDR ;AL * MSB OF TEST ADDR
;AL = MSB-LSB OF TEST ADDR
;AL = MSB-LSB OF ADR + PARA #
COMPLEMENT TO FORM EXPECTED DATA
;VERIFY LOCATION, AL * O -> NO ERROR
ACCUMULATE ANY FAILED DATA BITS
;CLEAR TEST LOCATION
CONTINUE FOR ENTIRE RAM
C2-2-6, C2-2-7
JMP
BP
;RETURN TO ADDRESS IN BP
C2-2-8
130037/0807
30486U
RTCTST
RTCTSTl:
RTCTST2:
REAL TIME CLOCK TEST IVSPUR jASSIGN SPURIOS IV TO ALL LEVELS ;BX = PTR TO INT-RCV BYTE
EQU $ ES -,SAVE ES ;CLEAR INT RECV FLAG
ASSIGN RTC IV SI,4*RTCIL ;SI = INDEX PTR TO RTC IL ,ENABLE RTC
CALL BX,RTCIV ;GET ABSOLUTE PTR TO IV •,ENABLE PROCESSOR INTERRUPTS
PUSH M[SI]1ES ;ENTER HIGH ADR WORD OF IV
MOV M[SI+Z],BX ;ENTER LOW ADR WORD OF IV ;WAIT FOR ABOUT 22 MSEC
LES ES ;RESTORE ES ;MUST RECV RTC INTR BY NOW
MOV FOR RTC NOT INTERRUPTING WHEN ENABLED OTHERWISE RTC ERROR - SO REPEAT RTC TEST
MOV BXJNTRCV EARLY
POP M[BX],0 !CLEAR RTC INTR FLAG
TEST RTCENB,AL
LEA !SYNCHRONIZE WITH RTC INTR
MOV AH, 22 jCLEAR RTC INTR FLAG
OUT WAIT
EI M[BX]5O ;WAIT FOR ABOUT 15 MSEC
MOV RTCTST ;RTC SHOULDN'T INTERRUPT
CALL RTC INTERRUPTING TOO OTHERWISE RTC ERROR - SO REPEAT THIS TEST
CMP M[BX],O WHEN DISABLED
JZ M[BX] ,0 jDISABLE RTC
TEST RTCTST2 ;CLEAR INTR FLAG
MOV M[BX]
CMP AH, 15 -,WAIT FOR ABOUT 30 MSEC
OZ WAIT ;RTC SHOULDN'T INTERRUPT
DEC M[BX],O •,OTHERWISE RTC ERROR - SO REPEAT THIS TEST
MOV RTCTST
CALL FOR RTC INTERRUPTING :RETURN
CMP DSBRTC,AL
JNZ M[BX],O
TEST AH, 30
OUT WAIT
MOV M[BX],O
MOV RTCTST
CALL END OF RTC TEST
CMP RET
JNZ
DO DI
}D3
-D5
}0T }09 D11
130037/0807
30A86U
MPC LOOP-BACK COMMUNICATIONS TEST LPBKTST: EQU
MOV DL, O
MOV AL ,LEDCOMM
NOT AL
OUT LEDPORTA,AL
;CLEAR ERROR INDICATOR ;AL = DISPLAY CODE FOR THIS TEST
■,DISPLAY TEST RUNNING
PERFORM LOCAL LOOPBACK WITH PATTERNS: · 1. 1I1 ROTATED IN THE TEST BYTE Z. 1O1 ROTATED IN THE TEST BYTE
CALL
MOV
CALL
MOV
CALL
LPBKCNFG
AL.l
LPBKDATA
AL1X1FE1
LPBKDATA
END OF LOOPBACK TEST
MOV MOV OUT RET
M[LPBKSTS],DL AL,O C0MM7,AL ;CONFIG MPC 2651 FOR LOCAL LOOPBACK ϊΙΝΙΤ AL WITH PATTERN 1 ;LOOPBACK DATA AND VERIFY ;INIT AL WITH PATTERN 2 ;PERFORM LOOPBACK
-,SAVE LOOPBACK TEST RESULT
iDISABLE X-MITTER & RECEIVER ;RETURN
CONFIGURE 2651 FOR LOCAL LOOPBACK LPBKCNFG EQU $
MOV AL ,0101111OB ;WRITE MODE REG 1 FOR' ASYNC COMM WITH 8 BITS/CH OUT C0MM6.AL ; ODD PARITY ENABLED AND 1 STOP BIT/CHAR MOV AL ,0011110OB -,WRITE MODE REG 2 TO ENABLE INTERNAL CLOCK OUT C0MM6.AL ; AT 4800 BITS/SEC MOV AL.lOlOOlllB ;WRITE CMMND REG FOR LOCAL LOOPBACK OUT . C0MM7.AL ; AND ENABLE. X-MIHER & RECEIVER
RET ;RETURN LOOPBACK & VERIFY DATA THRU MPC 2651
ON RETURN: DL = : DL >
$
LPBKDATA EQU CX ,8
MOV BH.-l
MOV FOR X-MIHE
CHECK AH1COMMl
LPBKDl: IN' AH, 1
SAR LPBKD2
JNAE BX
DCR LPBKDl
JNE DL.-l
MOV LPBKD5
JMP
O NO ERROR
O ACCUMULATED ERROR BITS
;SET LOOP COUNT TO # OF BITS IN A BYTE ;SET TIME-OUT COUNTER
;READ 2651 STS REG ;CF = X-MIT STS BIT ;JUMP TO X-MIT IF CF = 1 DECREMENT TIME-OUT COUNT ;RETRY UNTIL 2651 TIMES OUT ;SET ERROR INDICATOR ;EXIT
130037/0807
X-MIT BYTE AND CHECK RECEIVER STS
LPBKD2: OUT C0MM4,AL ;X-MIT TEST BYTE '
LPBKD3: IN AH, COMMl ;READ STATUS
SAR AH,1
SAR AH1I iCF = RECV STS BIT
JNAE LPBKD4 ;JUMP TO,RECV DATA IF CF = 1
DCR BX ;DECREMENT TIME-OUT COUNT
JNE LPBKD3 ;RETRY UNTIL 2651 TIMES-OUT
MOV DL1-I ;SET ERROR INDICATOR
JMP LPBKD5 ;EXIT
READ AND VERIFY LOOPBACK BYTE
LPBKD4: IN . DH1COMMO ;DH = RECV DATA BYTE
XOR DH1AL ;VERIFY RECV DATA, DH = O -> NO ERROR
OR DL1DH •,ACCUMULATE ANY BITS IN ERROR
FORM NEXT TEST BYTE
RCL AL,1 ;ROTATE PATTERN IN THE TEST BYTE
MOV BH1-I ;INIT TIME-OUT COUNT
LOOP LPBKDl ;REPEAT LOOPBACK 8 TIMES
END OF THIS ROUTINE
F.4.E5
LPBKD5:
RET
;RETURN
130037/0807
30486U
SIGNTRE
SIGNTLP:
DISPATCHER FOR ROM SIGNATURE CALCULATION SIGNATURES ARE STORED IN SIGTBL AREA EQU $ UPDATE LED DISPLAY
FO
MOV AL ,LEDS IG ;DISPLAY TEST RUNNING ON LED1S
NOT AL SIGNATURE FOR EACH IKBYTE OF ROM
OUT LEDPORTA,AL ;AX =0
DISPATCH TO CALCULATE ;ASSIGN DATA SEGMENT
XOR AX jASSIGN EXTRA SEGMENT
MOV DS,AX ;CLEAR DF FOR FORWARD DIRECTION
MOV ES ,AX ;CX = 2 * # OF 2K-PROM1S
CLD ;BX = BOTTOM OF ROM SIGNATURE SAVE AREA
MOV CX, 32 iINIT ROM SIG BUFFER ADDR
MOV BX ,SIGTBL iINIT ROM ADDRESS
MOV M[SIGBUF],BX ;SAVE ROM ADDR
MOV DX,O ;SAVE CX
MOV M[ROMADR],DX CALCULATE SIGNATURE
PUSH CX ;DF = 1 FOR FORWARD DIR
CALL SIGC ;SI = PTR TO SlG JUST CALCULATED
CLD ;DI = PTR TO SIG SAVE AREA
MOV SI,SlG ;AX = ADR OF ROM
MOV DI1M[SIGBUF] VENTER ADR OF ROM IN SIG CNFG TABLE'
MOV AX5M[ROMADR] ;CH = # OF SIG BYTES
STOS AX ;MOVE 4 BYTE SIGNATURE TO SIG SAVE AREA
MOV CX ,4 ;SAVE PTR TO SIG TABLE
REP MOVS ;DX = ADR OF ROM
MOV M[SIGBUF],DI ;DX = NEXT ROM ADDRESS
MOV DX ,AX ;RESTORE LOOP COUNTER
ADD DX,ROMSIZE •.CONTINUE FOR ALL ROM'S
POP CX
LOOP SIGNTLP
-FI
F2
-F3
F5
RET
;RETURN
F7
F6
ROUTINE TO CALCULATE ROM SIGNATURE ON ENTRY : DX =· ROM ADDRESS ON RETURN: SlG TO SIG+3 = SIGNATURE SIGNATURE RETURNED IS OF 4 BYTES CONTAINING 8 BCD DIGITS IN LOCATIONS SIG THROUGH SIG+3 THIS' SIGNATURE = THE SIGNATURE ON PROM PAPER TAPE
130037/0807
THE PROCEDURE FOR CALCULATING THE SIGNATURE WORD IS AS FOLLOWS:
A. SIGNATURE = OOOOOOOO
B. SIGNATURE = 2 * SIGNATURE
C. SIGNATURE = SIGNATURE + DATA BYTE
D. IF A CARRY OUT OF THE MOST SIGNIFICANT DIGIT OCCURS,
THEN SIGNATURE = SIGNATURE + 1
E. IF 1024 BYTES ACCUMULATED, THEN DONE
ELSE GO TO STEP B
INITIALIZE THE SIGNATURE BX ,SIG TO OOOOOOOO
SIGC: MOV CX ,8 ;BX = PTR TO SIGN BUFFER
MOV M[BX],O ;CX = H OF WORK BYTES
SIGl: MOV BX ;CLEAR A WORK BYTE
INC SIGl ;POINT TO NEXT BYTE
LOOP ;CLEAR ALL WORK AREA
F3
INITIALIZE SIGR2 AND SIGR3
SIGR2 POINTS TO THE DATA BEING ANALYZED SIGR3 IS THE NUMBER OF BYTES REMAINING IN THE FIELD
MOV M[SIGR2],DX ;SIGR2 POINTS TO THE DATA MOV WORD PTR[SIGR3],ROMSIZE ;SIGR3 = ROMSIZE (I.E., IK)
MULTIPLY SIGNATURE BY 2
SIG2: MOV BX,SIG ;BX = PTR TO SIGNATURE
MOV CX,8 ;CX = # OF SIGNATURE BYTES
SIG3: SAL M[BX],1 ;MULTIPLY SIG BYTE BY 2
INC BX ;BX = PTR TO NEXT SIGNATURE BYTE
LOOP SIG3 ;LOOP FOR 8 BYTES
CALL SIG8 •,ADJUST CARRIES
GET NEW DATA BYTE FROM SELECTED ROM
MOV BX,WORD PTR[SIGR2] ;BX POINTS TO THE DATA MOV AL,CS:M[BX] ;AL = ROM DATA BYTE INC WORD PTR [BX] ;UPDATE THE PONTER
ADD NEW DATA BYTE TO SIGNATURE
FIRST UPDATE HUNDREDS DIGIT
MOV BX,SIG+5 ;BX = PTR TO CURRENT HUNDR
SIG4: CMP AL,100
JL SHORT SIG5 ;EXIT IF DATA IS <100
INC M[BX] ;UPDATE HUNDREDS DIGIT
SUB AL ,100 ;DATA = DATA - 100
JMP SIG4 ;AND LOOP
UPDATE TENS DIGIT
SIG5: INC BX ;BX = PTR TO TENS DIGIT
MOV CH.O
SIG6: CMP AL, 10
JL SHORT SIG7 ;EXIT IF A <10
INC CH ;UPDATE TENS DIGIT COUNTER
SUB AL,10 ;A=A-10
JMP SIG6 -,AND LOOP
CH NOW CONTAINS TENS DIGIT VALUE A NOW CONTAINS THE UNITS VALUE
130037/0807
30486H
SIG7:
SIGlO:
SIGH:
ADD INC ADD CALL
M[BX],CH BX
M[BX]1AL SIG8
;UPDATE TENS DIGIT OF SIGNATURE ;BX «= PTR TO CURRENT UNIT DIGIT iUPDATE UNITS DIGIT OF SIGNATURE ;ADJUST CARRIES FOR SIGNATURE
ONE DIGIT IS DONE DEC ' WORD PTR [SIGR3] DECREMENT BYTE COUNT JNZ SIG2 CALCULATE SIG FOR IK OF ROM
SIGNATURE HAS BEEN CALCULATED PACK IT IN 4 BYTES OF 8 BCD DIGITS
MOV
MOV
MOV
LODS
MOV
SAL
OR
STOS
DEC
JNZ
SI ,SIG DI ,SIG CH,4 AX
CL ,4 AL ,CL AL ,AH AL CH SIGH
;SI = PTR TO SIGNATURE BUFFER
;DI = PTR TO SIGNATURE BUFFER
;CH = LOOP COUNTER
;AX = 2 SIGN BYTES
iSHIFT LEFT 4 TIMES TO MOVE TO HIGH NIBBLE ;PACK 2 BYTES INTO 1 BYTE OF 2BCD DIGITS ;WRITE PACKED BYTE INTO SIGNATURE BUFFER DECREMENT LOOP COUNTER ;PACK ENTIRE SIGNATURE IN 4 BYTES
END OF SIGNATURE CALCULATION
RET
;END OF SIGNATURE CALCULATION - R E T U R N
ROUTINE TO ADJUST THE CARRIES FOR SIGNATURE
SIG8: CLC BX.SIG+7 ;CLEAR CARRY FLAG, CY = O
SIG8A: ■ MOV CX ,8 ;BX = PTR TO UNITS DIGIT
MOV M[BX] ,0 ;CX = # OF BYTES OF SIGNATURE
ADC CARRY FOR A BYTE ;INC UNITS DIGIT IF CY = 1
ADJUST AL,M[BX]
SIG8B: MOV AL,O ;AL = DIGIT FROM SIGNATURE
ADC AL, 10 ;AL = AL+CY ·
CMP SHORT SIG8C lCHECK IF WITHIN DECIMAL BOUND
JAE ;JUMP IF CY = O ( A >= 10)
DAA AL ,OFH ;DECIMAL ADJUST
AND ;MASK-OFF 4 MOST SIGNIFICANT BITS
STC iCY = 1
SIG8C: MOV M[BX],AL jUPDATE CARRY ADJUSTED DIGIT REPEAT CARRY ADJUST PROCESS FOR 8 BYTES
DEC LOOP
BX SIG8B
•,POINT TO NEXT SIGNATURE BYTE ;ADJUST CARRY FOR ALL 8 BYTES
NOW CHECK FOR CARRY OUT OF THE MOST SIGNIFICANT DIGIT AND ADD IT INTO THE LEAST SIGNIFICANT DIGIT
JNAE RET
SIG8A
;REPEAT ADJUST PROCESS IF CY •,RETURN
130037/0807
30486H
CONTROLLER I/O TEST
IOTSTLP
EQU $ AX ,AX 'CSLFSTS]1AL
M IRSTS]1AL
INITIALIZE TEST PARAMETERS M 'SLOT(P]1AL
XOR M "IOSLOTLAL
MOV M M[IOSZ],AX
MOV AX.IOTBL
MOV M[IOPTR]1AX
MOV LED DISPLAY
MOV $
MOV AL,M[SLOTG* J
MOV CL.4
UPDATE AL5CL
EQU AL,LEDIO
MOV AL
MOV LEDPORTA,AL
SAL
OR
NOT
OUT
;AH = AL = O ;CLEAR CONTROLLER SELF TEST STS BYTE ;CLEAR INTERRUPT RESPONSE STS BYTE ;INIT IOC SLOT § TO ZERO
;CLEAR FAILED IO SLOT INDICATOR ;INIT TO CNFG TABLE SIZE TO O ;AX = PTR TO IO CNFG TABLE iINIT PTR TO IO CNFG TABLE
60
G1
;AL = SELECTED IOC SLOT
;CL = SHIFT COUNT ;HIGH NIBBLE OF AL = SLOT #
;ADD IO TEST # ;COMPLEMENT TO LIGHT UP LED
;UPDATE LED DISPLAY
DETERMINE CONTROLLER ID AND CONFIGURATION BYTES ENTER ABOVE IN THE CONFIGURATION TABLE
ALSO GET CONTROLLER SELF TEST STATUS FOR ONE HAVING SUCH CAPABILITY
G2
CALL
CSLFTST
G3
TEST INTERRUPT. RESPONSE AND CONTENTION
CALL IVTST
COME HERE AT THE END OF ONE CONTROLLER
INC WORD PTR M[IOSZ] ;INC # OF ENTRIES IN CNFG TABLE
INC M[SLOTG] ;POINT TO NEXT IOC SLOT
CMP M[SLOTP],10 ;ARE ALL SLOTS TESTED?
JLE IOTSTLP ;N0, THEN CONTINUE IO TEST
ALL SLOTS HAVE BEEN TESTED DISPLAY LED 12 AS PER INTERRUPT TEST STATUS -G5.G6
MOV AL,M[IRSTS]
SAL AL.l
SAL AL.l
NOT AL
OUT LEDPORTB,AL
END OF IO TEST
RET
jAL = INTERRUPT RESPONSE STS (O * PASS) 67 ;BIT 2 OF AL = DATA FOR LED 12 ;DISPLAY LED 12
;RETURN
130037/0807
30A861A
ROUTINE FOR CONTROLLER SELF TEST STS AND CONFIGURATION CSLFSTS EQU GET CONTROLLER ID & ENTER IN CNFG TABLE MOV BX,M[IOPTR] MOV DI,M[IOSZ]
SAL DI,1
SAL DI,1
ADD DI1M[IOSZ] MOV DL,IDPORT MOV DH,M[SLOT@]
IN AL,DX
MOV M[BX+DI],DH MOV M[BX+DI+1],DL
;BX.= PTR TO IO CNFG TABLE
;DI = # OF ENTRIES IN CNFG TABLE ;ADJUST INDEX FOR ENTRY OF 5 BYTES
;DL = PORT # FOR ID READ
;DH * SLOT # = GROUP PORT # ;AL = CONTROLLER ID
iENTER IO SLOT # IN THE TABLE ;ENTER CONTROLLER ID IN THE TABLE
INDICATE CONTROLLER SELF TEST STATUS
CSLFTSTl
SAL JAE SAL JAE MOV MOV EQU
AL.l
CSLFTSTl
AL.l
CSLFTSTl
M[CSLFSTS],
M[IOSTS],1
;DOES CONTROLLER HAS SELF TEST? 63.-2 ;N0 THEN SKIP THIS OPERATION ;CF = CONTR SELF TEST STS (O * PASS) ;SKIP ERROR INDICATION FOR PASS CONDITION ;SET FLAG FOR SELF TEST FAILED ;SET IO TEST FAIL STS
GET CONTROLLER CONFIGURATION BYTES MOV DL,CNFGPRTl
IN AL ,DX
MOV MCBX+DI+2],AL MOV DL.CNFGPRT2
IN AL,DX
MOV M[BX+DI+3],AL
END OF THIS ROUTINE RET ;DL = PORT # FOR CNFG BYTE 1 ;AL = CNFG BYTE 1
;ENTER CNFG BYTE 1 IN TABLE
;DL = PORT # FOR CNFG BYTE 2 ;AL = CNFG BYTE 2
;ENTER CNFG BYTE 2 IN THE TABLE
;RETURN
130037/0807
30486H
INTERRUPT RESPONSE AND CONTENTION TEST
IVTST
IVTSTl
IVTST2
IVTST3
EQU $
ASSIGN INTERRUPT VECTOR
CALL
MOV
ADD
SAL
SAL
MOV
MOV
PUSH
LES
MOV
MOV
MOV
MOV
POP
IVSPUR
AL ,M[SLOTI?]
DL,
AH ,0
S I, AX
ES
BX,EXPIV
ES
[SI],ES 'SI+2LBX SI+4LES '.S1+6], BX ;ASSIGN IV FOR SPURIOUS INTERRUPT ;AL = SLOT *
;AL & AL'+l = EXPECTED IL
;AL = OFFSET PTR TO IV
;AH = O
;SI = INDEX TO IV
;ES,BX = ADDR OF IV
;SET IV AT EXP IL - ENTER HIGH ADR WORD OF IV ;ENTER LOW ADR WORD OF IV
;SET IV AT NEXT EXP IL
ISSUE INTERRUPT REQUEST AND WAIT FOR RESPONSE
EQU
MOV
MOV
MOV
MOV
OUT
MOV
OUT
MOV
CALL
MOV
OUT
M[INTRCV],0
M[INTSPUR]1O
DLJESTCMPT
DH ,M[SLOTg]
DL, AL
DLJNTTST
DX ,AL
AHJ
WAIT
DLJIACKPT
DL ,AL ;CLEAR INT RCV FLAG
;CLEAR SPUR INT FLAG
;DL = PORT # TO ENABLE INT TEST ;DH = PORT GROUP #
;ENABLE INTERRUPT TEST
;DL = PORT # FOR INTR REQUEST ;ISSUE INTR REQUEST TO CONTROLLER
;WAIT FOR ABOUT 1 MSEC
;SEND INTR ACK TO CONTROLLERS
DETERMINE IF RESPONSE IS RECEIVED AT EXPECTED LEVELS
EQu MOV CMP JNZ MOV CMP JZ
AL,O
M[INTSPUR]1O
IVTST3
AL,M[INTRCV]
AL,O
IVTST5 ;AL = O
;IS SPURIOUS INTR FLAG SET?
;YES, THEN SPURIOUS INTR ERROR ;AL = # OF INTR1S RECEIVED
;EXIT IF NO INTR IS RECEIVED
DETERMINE IF THERE IS ANY INTR CONTENTION
CMP
JZ
MOV
DEC
ROR
JMP
M[INTPRV],2
IVTST3
M[INTPRV]1AL
AL
ALJ
IVTST4 ;DOES PREVIOUS CONTR NEED 2 LEVELS? ;YES THEN THERE IS INTR CONTENTION ;UPDATE PREVIOUS INTR COUNT
;BIT 7 OF AL = 1 FOR 2 LEVELS
;SAVE RESULTS IN CNFG TABLE
COME HERE FOR INTR CONTENTION OR SPURIOUS INTR
EQU $
MOV M[IRSTS]J
MOV M[IOSTS]J
OR AL,X140'
MOV AH,M[SLOTS]
MOV M[IOSLOT],AH
;SET INTR RESPONSE ERROR FLAG
;SET IO TEST ERROR FLAG
;SET INTR TEST FAILED BIT FOR CNFG TABLE
;ENTER SLOT # THAT FAILS THIS TEST ENTER INTR TEST RESULT IN THE CNFG TABLE
130037/0807
IVTST4
IVTST5:
SYSCNFG
EQU $
OR AL ,M[SLOTI?]
ADD AL, 10
MOV BX,M[IOPTR]
MOV DI,M[IOSZ]
SAL DI ,1
SAL DI,1
ADD DI ,M[IOSZ]
MOV M[BX+DI+4],AL
;RECALL, INT LEVEL = SLOT # + 10 G4-7 ;ADD INT LEV VALUE TO TEST RESULT ;BX = PTR TO IO CNFG TABLE ;DI = H OF ENTRIES IN TABLE ;ADJUST INDEX FOR ENTRY OF 5 BYTES
;ENTER INTR TEST RESULT IN CNFG TABLE ♦
END OF INTERRUPT RESPONSE TEST
RET ;RETURN ;AL = CNFG TEST #
;DISPLAY TEST RUNNING ON LED1S
;CREATE MEMORY CONFIGURATION
;CREATE SIGNATURE CONFIGURATION
;CREATE I/O CONFIGURATION
64-.
CREATE SYSTEM CONFIGURATION HERE CONFIGURATION TABLES
EQU $ MEMCNFG
SIGCNFG
IOCNFG
;RETURN HO
UPDATE LED DISPLAY CONFIGURATION
MOV
NOT
OUT
AL ,LEDCNFG
AL
LEDPORTA,AL
}
CREATE CONFIGURE SYSTEM MEMORY
GALL
CALL
CALL
H2
H3
H4
END OF
RET H5
H1
MEMCNFG: RET
- MEM CNFG TABLE WAS CREATED WHILE TESTING RAM.
- MEMPTR = PTR TO MEM CNFG TABLE
- MEMSZ = # OF ENTRIES IN MEM CNFG TABLE
(EACH ENTRY = 4 BYTES)
;RETURN
CONFIGURE SIGNATURES SIGCNFG: RET
- SIG CNFG TABLE WAS CREATED AT SIG CALCULATION TIME
- SIGPTR = PTR TO SIG CNFG TABLE
- SlGSZ = # OF ENTRIES IN SIG CNFG TABLE
(EACH ENTRY - 6 BYTES)
•,RETURN
130037/0807
30486U
CONFIGURE I/O
IOCNFG:
RET
- IO CNFG TABLE CREATED WHILE TESTING IO
- IOPTR = PTR TO IO CNFG TABLE
- IOSZ = if OF ENTRIES IN IO CNFG TABLE
(EACH ENTRY = 5 BYTES)
;RETURN
ROUTINE TO DETERMINE SELF TEST STATUS AND DISPLAY STATUS ON LED1S
TSTSTS EQU $
DETERMINE SELF TEST STATUS
XOR AX ,AX
CMP M[RAMSTS]1AL
JZ TSTSTSl
OR AL,1
TSTSTSl: CMP M[LPBKSTS],AH
JZ TSTSTS2
OR AL,2
TSTSTS2: CMP M[IOSTS]5AH
JZ TSTSTS3
OR AL ,4
- MOV AH1M[IOSLOT]
MOV CL,4
SAL AH, CL
OR AL ,AH
TSTSTS3: MOV M[SELFSTS],AL
DISPLAY STATUS PATTERN
XOR DL ,DL
TEST AL,DL
JZ TSTSTS6
CMP M[IOSTS],O
JZ TSTSTS4
MOV DL,LEDIO
OR DL,DH
JMP TSTSTS6
TSTSTS4: CMP M[LPBKSTS],0
JZ TSTSTS5
MOV DL ,LEDCOMM
JMP TSTSTS6
TSTSTS5: MOV DL ,LEDRAM
TSTSTS6: MOV
ΝΠΤ
M[LEDPTRN]1DL
Dl
Uv i
MOV
AL ,DL
OUT LEDPORTA,AL
END OF THIS ROUTINE
;AL = AH = O IO
,RAM TEST STS?
,SKIP ERROR ENTRY IF PASS CONDITION ;ENTER RAM TEST FAIL STS
;CHECK COMM LOOPBACK TEST STS ,SKIP ERROR UPDATE IF PASS CONDITION ;ENTER LOOPBACK FAIL STS
;CHECK IO TEST STS?
,SKIP ERROR UPDATE IF PASS CONDITION ;ENTER IO TEST FAIL STS
;AH = IO SLOT THAT FAILED
,HIGH NIBBLE OF AH = IO SLOT # ;ENTER SLOT ti IN STS BYTE ;ENTER SELF TEST STS IN CONTROL AREA
12
RET ;DL = O
;CHECK STATUS BYTE FOR ANY ERRORS?
;N0 ERROR IF STS BYTE IS O
;IS IO ERROR? II
;N0 THEN CONTINUE WITH NEXT CHECK ;DL = IO TEST #
;ADD SLOT H THAT FAILED
;CHECK IF COMM LOOPBACK ERROR ;N0 THEN PROCEED WITH NEXT CHECK ;DL = COMM LOOPBACK TEST §
;DL = RAM TEST #
;SAVE LED PATTERN IN THE CONTROL AREA 12
,COMPLEMENT TO LIGHT UP LED1S I
;AL = LED PATTERN I
■,DISPLAY PATTERN ON LED1S ♦
!RETURN
130037/0807
WAIT SELF TEST SUPPORT ROUTINES ES $ $ ;AL = O
WAIT ROUTINE SI,SI M[INTRCV] M[INTSPUR],1 DECREMENT LOOP
WAITLP: WAIT PERIOD = AH MSEC CX, X·40'
EQU $ BX5SPURIV ;LOOP 256 TIMES ( 1 MSEC)
XOR AL ,AL $ SPURIOUS INTERRUPT HANDLER INTERRUPT HANDLER
DEC AL M[Sl]1ES EQU $ •,WAIT FOR ABOUT AH MSEC
NOP M[SI+2] ,BX MOV M[INTRCV] ;RETURN
JNZ WAITLP SI,4 EI CLRRTC,AL 64 INT LEVELS
DEC AH IVSPURLP RET
IVSPUR; JNZ WAITLP ES RTC ;SI = O
RET EQU OF SELF TEST ;CX = # OF IL1S
ASSIGN SPURIOUS IV TO ALL INTERRUPT HANDLERS INC ;ES,BX = ABS PTR TO SPURIOUS
PUSH EXPECTED INTERRUPT HANDLER OUT
IVSPURLP XOR EQU EI •,ENTER HIGH ADR WORD OF IV
MOV INC RET ;ENTER LOW ADR WORD OF IV
• LES EI END ;POINT INDEX TO NEXT IV
EQU RET ENDS •,ASSIGN ALL 64 INT LEVELS
MOV END
MOV ;RETURN
ADD
LOOP
POP
EXPIV RET ; INCREMENT INT RECV FUG
•,RETURN FROM INTERRUPT
SPURIV ;SET SPURIOUS INT FLAG
;RETURN
RTCIV iINC INT RECV FLAG
;CLEAR RTC INTERRUPT
;RETURN
;END OF CODE SEGMENT
CODESG
USED IN
D3.D6,
G4-2
INT HANDLER
USED IN D1,G4-1
USED IN "64-2
USED IN '64-2
USED IN D4.D7, D10
130037/0807

Claims (12)

  1. Patentansprüche:
    NJ Datenverarbeitungssystem mit einem Prozessor und einer Speichereinrichtung/ gekennzeichnet durch eine erste Testeinrichtung zur Feststellung der Funktionsfähigkeit eines ersten Abschnittes der Speichereinrichtung; eine auf die erste Testeinrichtung ansprechende Einrichtung zum Sperren des weiteren Betriebs des Systems bei der Feststellung einer fehlerhaften Funktion' der ersten Speichereinrichtung; .
    eine zweite Testeinrichtung zur Feststellung der Funktionsfähigkeit eines zweiten Abschnittes der Speichereinrichtung; und
    eine Einrichtung zum Einspeichern der Ergebnisse bezüglich der Operation der zweiten Testeinrichtung in einem vorbestimmten Speicherplatz des ersten Speicherabschnittes, um die Funktion des zweiten Speicherabschnittes anzuzeigen.
  2. 2. System nach Anspruch 1, gekennzeichnet durch eine Steuereinrichtung zur Freigabe der Testeinrichtung bei jeder Systemeinschaltung.
    130037/0807
  3. 3. System nach Anspruch 1 mit einem Speicher mit wahlfreiem Zugriff RAM und einem Festwertspeicher- ROM, gekennzeichnet durch eine dritte Testeinrichtung zum Lesen gespeicherter Daten aus Speicherplätzen des ROM; eine Signatureinrichtung zur Errechnung eines Signaturwortes, basierend auf dem Inhalt der aus dem ROM ausgelesenen'Daten;
    eine Einrichtung zum Einspeichern des Signaturwortes in einen vorbestimmten Speicherplatz des RAM.
  4. 4. System nach Anspruch 3, gekennzeichnet durch
    Mittel in der dritten Testeinrichtung zum byteweisen Auslesen der gespeicherten Daten aus dem ROM;
    Mittel in der Signatureinrichtung zum Akkumulieren der aus dem ROM ausgelesenen Bytes;
    eine Multiplikationseinrichtung zum Multiplizieren der akkumulierten Datenbytes mit einer ersten Konstanten, bevor jedes neue Datenbyte hinzuaddiert wird; und eine Addiereinrichtung zum Addieren einer fcweiten Konstanten zum akkumulierten Gesamtwert, jedesmal dann, wenn ein Übertrag aus der höchstwertigsten Bitposition des akkumulierten Gesamtwertes durch die Addition der neuen Datenbytes erzeugt wird, um aas Signaturwort zu erzeugen.
  5. 5. System nach Anspruch 4, gekennzeichnet
    durch
    eine Multiplikation, bei der die erste Konstante den Wert 2 aufweist.
  6. 6. System nach Anspruch 5, gekennzeichnet durch
    eine Addition, bei der die zweite Konstante den Wert 1 aufweist .
    130037/0807
  7. 7. System nach Anspruch 6, dadurch gekennzeichnet , daß die Signatur-/ die Multiplizier- und
    die Addiereinrichtung das Signaturwort in dezimaler Darstellung errechnen, wobei die Dezimalziffern binär kodiert
    sind.
  8. 8. System nach Anspruch 7, gekennzeichnet
    durch
    eine Steuereinrichtung zur Freigabe der dritten Testeinrich— tung bei jeder Systemeinschaltung.
  9. 9. System nach Anspruch 1 mit mehreren E/A-Steuereinrichtungen, gekennzeichnet durch
    eine Einrichtung zur Ausgabe eines Unterbrechungs-Anforderungssignales an eine ausgewählte E/A-Steuereinrichtung;
    eine vierte Testeinrichtung zum Empfang eines Unterbrechungs-Antwort signales von der ausgewählten E/A-Steuereinrichtung
    und zum Vergleich dieses Signales mit einem vorbestimmten
    Unterbrechungs-Antwortwert;
    eine fünfte Testeinrichtung zur Erzeugung eines Unterbrechungs-Statuswortes mit einem Fehlerhinweisbit aufgrund des durch die vierte Testeinrichtung ausgeführten Vergleiches; und
    eine Einrichtung zum Einspeichern des Unterbrechungs-Statuswortes in einem vorbestimmten Speicherplatz der Speichereinrichtung.
  10. 10. System nach Anspruch 9, wobei die ausgewählte E/A-Steuereinrichtung Mittel zu Erzeugung mehrerer Unterbrechungs-Antwortsignale mit unterschiedlichen lünterbrecnungspegeln aufweist, gekennzeichnet durch
    eine sechste Testeinrichtung zur Aufzeichnung der Anzahl der von der ausgewählten E/A-Steuereinrichtung empfangenen Unterbrechungs-Antwortsignale; und
    eine siebte Testeinrichtung zum Vergleich der Anzahl der von der sechsten Testeinrichtung aufgezeichneten Antwortsignale
    mit der Anzahl der zuvor für eine andere E/A-Steuereinrichtung
    130037/0807
    aufgezeichneten Antwortsignale und zur Erzeugung eines Fehlersignales, wenn die zuvor aufgezeichnete Anzahl den Wert 2 und die für die ausgewählte E/A-Steuereinrichtung aufgezeichnete Anzahl einen Wert größer als O aufweist.
  11. 11. System nach Anspruch 9, wobei jede E/A-Steuereinrichcung Mittel zur Erzeugung eines Identifikationsnummer-Hinweises aufweist, gekennzeichnet durch eine.Einrichtung zum Lesen des Identifikationsnummer-Hinweises der ausgewählten E/A-Steuereinrichtung; und eine mit der fünften Testeinrichtung zusammenarbeitende Einrichtung zur Darstellung einer Identifikationsnummer im ünterbrechungs-Statuswort.
  12. 12. System nach Anspruch 11, gekennzeichnet durch
    Mittel zur Auswahl jeder E/A-Steuereinrichtung der Reihe nach, wodurch ein Ünterbrechungs-Statuswort für jede Steuereinrichtung erzeugt wird; und
    eine Einrichtung zum Einspeichern eines jeden Unterbrechungs-Statuswortes in einem unterschiedlichen Speicherplatz der Speichereinrichtung.
    130037/0807
DE19803048614 1979-12-28 1980-12-23 Datenverarbeitungssystem mit pruefeinrichtung Withdrawn DE3048614A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/108,047 US4334307A (en) 1979-12-28 1979-12-28 Data processing system with self testing and configuration mapping capability

Publications (1)

Publication Number Publication Date
DE3048614A1 true DE3048614A1 (de) 1981-09-10

Family

ID=22319968

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803048614 Withdrawn DE3048614A1 (de) 1979-12-28 1980-12-23 Datenverarbeitungssystem mit pruefeinrichtung

Country Status (7)

Country Link
US (1) US4334307A (de)
JP (1) JPS56101255A (de)
AU (1) AU6511680A (de)
CA (1) CA1165450A (de)
DE (1) DE3048614A1 (de)
FR (1) FR2472783A1 (de)
GB (3) GB2066529B (de)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4482953A (en) * 1980-05-30 1984-11-13 Fairchild Camera & Instrument Corporation Computer with console addressable PLA storing control microcode and microinstructions for self-test of internal registers and ALU
JPS57105897A (en) * 1980-12-23 1982-07-01 Fujitsu Ltd Semiconductor storage device
US4485435A (en) * 1981-03-09 1984-11-27 General Signal Corporation Memory management method and apparatus for initializing and/or clearing R/W storage areas
AU545258B2 (en) * 1981-04-16 1985-07-04 Ncr Corporation Data processing system having error checking capability
US4471486A (en) * 1981-06-15 1984-09-11 General Signal Corporation Vital communication system for transmitting multiple messages
US4433413A (en) * 1981-10-22 1984-02-21 Siemens Corporation Built-in apparatus and method for testing a microprocessor system
US4654783A (en) * 1982-07-26 1987-03-31 Data General Corporation Unique process for loading a microcode control store in a data processing system
US4514806A (en) * 1982-09-30 1985-04-30 Honeywell Information Systems Inc. High speed link controller wraparound test logic
DE3236812A1 (de) * 1982-10-05 1984-04-05 Standard Elektrik Lorenz Ag, 7000 Stuttgart Fernwirksystem
EP0110589A3 (de) * 1982-11-30 1986-03-19 Honeywell Information Systems Inc. Gerät zur Durchführung von Diagnosetest von Kathodenstrahlröhren- und Floppy-disk-Subsystemen
US4667329A (en) * 1982-11-30 1987-05-19 Honeywell Information Systems Inc. Diskette subsystem fault isolation via video subsystem loopback
US4604751A (en) * 1984-06-29 1986-08-05 International Business Machines Corporation Error logging memory system for avoiding miscorrection of triple errors
GB2166893B (en) * 1984-10-05 1988-03-23 Sharp Kk Checking memory at system power-up
US4695946A (en) * 1984-10-25 1987-09-22 Unisys Corporation Maintenance subsystem for computer network including power control and remote diagnostic center
US4701845A (en) * 1984-10-25 1987-10-20 Unisys Corporation User interface processor for computer network with maintenance and programmable interrupt capability
JPS6219904A (ja) * 1985-07-18 1987-01-28 Diesel Kiki Co Ltd マイクロプロセツサを用いた制御装置
US4707834A (en) * 1985-09-17 1987-11-17 Tektronix, Inc. Computer-based instrument system
US4726024A (en) * 1986-03-31 1988-02-16 Mieczyslaw Mirowski Fail safe architecture for a computer system
US4811211A (en) * 1986-09-26 1989-03-07 Performance Semiconductor Corporation On-line overflow response system and ALU branching structure
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US4782486A (en) * 1987-05-14 1988-11-01 Digital Equipment Corporation Self-testing memory
DE3744200A1 (de) * 1987-12-24 1989-07-13 Heidelberger Druckmasch Ag Vorrichtung, verfahren zur sicherung von daten
JPH01248256A (ja) * 1988-03-30 1989-10-03 Toshiba Corp 入出力制御方式
US4943966A (en) * 1988-04-08 1990-07-24 Wang Laboratories, Inc. Memory diagnostic apparatus and method
US4896277A (en) * 1988-05-03 1990-01-23 Thermo King Corporation Method of mapping refrigerated containers in a power line carrier based monitoring system
DE3820728A1 (de) * 1988-06-18 1989-12-21 Philips Patentverwaltung Verfahren zum pruefen eines festwertspeichers und anordnung zur durchfuehrung des verfahrens
US5014193A (en) * 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
US5214762A (en) * 1988-11-07 1993-05-25 Compaq Computer Corporation Disk drive activity indicator
JPH07113898B2 (ja) * 1989-05-09 1995-12-06 株式会社日立製作所 障害検出方式
US5019772A (en) * 1989-05-23 1991-05-28 International Business Machines Corporation Test selection techniques
JPH0776952B2 (ja) * 1990-02-02 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション 追加デバイスのコンピュータ・モニタリング・システム
US5173903A (en) * 1990-09-14 1992-12-22 Bull Hn Information Systems Inc. Method for performing quality logic tests on data processing systems by sequentially loading test microinstruction programs and operating microinstruction programs into a single control store
US5233510A (en) * 1991-09-27 1993-08-03 Motorola, Inc. Continuously self configuring distributed control system
US5307482A (en) * 1992-01-28 1994-04-26 International Business Machines Corp. Computer, non-maskable interrupt trace routine override
US5509138A (en) * 1993-03-22 1996-04-16 Compaq Computer Corporation Method for determining speeds of memory modules
US5805925A (en) * 1995-12-13 1998-09-08 Motorola Inc. Apparatus and method for controlling and varying multiple data rates among multiple communications devices in a communications system
US6032859A (en) * 1996-09-18 2000-03-07 New View Technologies, Inc. Method for processing debit purchase transactions using a counter-top terminal system
US6006344A (en) * 1997-01-21 1999-12-21 Dell Usa, L.P., A Texas Limited Partnership Keyboard controlled diagnostic system
US5862151A (en) * 1997-01-23 1999-01-19 Unisys Corporation Array self-test fault tolerant programmable threshold algorithm
US6735574B2 (en) 1997-11-05 2004-05-11 Micron Technology, Inc. Method and system for tracking employee productivity in a client/server environment
US6473752B1 (en) 1997-12-04 2002-10-29 Micron Technology, Inc. Method and system for locating documents based on previously accessed documents
US6282622B1 (en) * 1998-08-10 2001-08-28 Joseph Norman Morris System, method, and program for detecting and assuring DRAM arrays
US6367008B1 (en) 1998-11-30 2002-04-02 Micron Technology, Inc. Self-importing system change routine
US6457123B1 (en) 1998-11-30 2002-09-24 Micron Technology, Inc. Self-importing system change routine
US6664988B1 (en) 1999-02-10 2003-12-16 Micron Technology, Inc. Graphical representation of system information on a remote computer
US6886111B1 (en) 2000-03-08 2005-04-26 International Business Machines Corporation Method and data processing system for software testing of a device driver
US20060074583A1 (en) * 2004-09-30 2006-04-06 Michael Bieker Methods and systems for unattended tracking of device transfer rates and reporting of performance degradation
US7200700B2 (en) * 2005-05-19 2007-04-03 Inventec Corporation Shared-IRQ user defined interrupt signal handling method and system
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8060774B2 (en) * 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
DE112006001810T5 (de) * 2005-06-24 2008-08-21 Metaram Inc., San Jose Integrierte Speicherkern - und Speicherschnittstellenschaltung
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
WO2007028109A2 (en) 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7961780B2 (en) * 2006-06-29 2011-06-14 Leo Montreuil Generated set top calibration patterns in manufacturing
US7499822B2 (en) * 2006-06-29 2009-03-03 Cisco Technology, Inc. Analog set top calibration patterns in manufacturing
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US8306912B2 (en) 2007-12-19 2012-11-06 Metabank Private label promotion card system, program product, and associated computer-implemented methods
US8108272B2 (en) 2007-12-21 2012-01-31 Metabank Transfer account systems, computer program products, and computer-implemented methods to prioritize payments from preselected bank account
US8583515B2 (en) 2007-12-21 2013-11-12 Metabank Transfer account systems, computer program products, and associated computer-implemented methods
US8108279B2 (en) * 2007-12-21 2012-01-31 Metabank Computer-implemented methods, program product, and system to enhance banking terms over time
US10515405B2 (en) 2008-03-03 2019-12-24 Metabank Person-to-person lending program product, system, and associated computer-implemented methods
US8150764B2 (en) * 2008-04-04 2012-04-03 Metabank System, program product, and method to authorize draw for retailer optimization
WO2009124262A1 (en) 2008-04-04 2009-10-08 Metabank System, program product and method for performing an incremental automatic credit line draw using a prepaid card
WO2009124264A1 (en) * 2008-04-04 2009-10-08 Metabank System, program product, and method for debit card and checking account autodraw
US8538879B2 (en) * 2008-05-14 2013-09-17 Metabank System, program product, and computer-implemented method for loading a loan on an existing pre-paid card
US11227331B2 (en) 2008-05-14 2022-01-18 Metabank System, program product, and computer-implemented method for loading a loan on an existing pre-paid card
WO2009140520A1 (en) 2008-05-14 2009-11-19 Metabank A pre-paid card transaction computer to load a loan on a pre-paid card
US7594821B1 (en) 2008-09-17 2009-09-29 Yazaki North America, Inc. Sealing gap formed by assembled connector parts
US8403211B2 (en) * 2008-09-04 2013-03-26 Metabank System, program product and methods for retail activation and reload associated with partial authorization transactions
WO2010028266A1 (en) 2008-09-04 2010-03-11 Metabank System, program product and methods for retail activation and reload associated with partial authorization transactions
US8024242B2 (en) 2008-09-04 2011-09-20 Metabank System, method, and program product for foreign currency travel account
US8371502B1 (en) 2008-10-28 2013-02-12 Metabank Shopping center gift card offer fulfillment machine, program product, and associated methods
US8108977B1 (en) 2008-10-31 2012-02-07 Metabank Machine, methods, and program product for electronic order entry
US9213965B1 (en) 2008-11-26 2015-12-15 Metabank Machine, methods, and program product for electronic inventory tracking
US8090649B2 (en) * 2008-12-18 2012-01-03 Metabank Computerized extension of credit to existing demand deposit accounts, prepaid cards and lines of credit based on expected tax refund proceeds, associated systems and computer program products
US8175962B2 (en) * 2008-12-18 2012-05-08 Metabank Computerized extension of credit to existing demand deposit accounts, prepaid cards and lines of credit based on expected tax refund proceeds, associated systems and computer program products
US8286863B1 (en) 2009-02-04 2012-10-16 Metabank System and computer program product to issue a retail prepaid card including a user-designed external face using a chit and related computer implemented methods
US20110060684A1 (en) * 2009-03-25 2011-03-10 Jucht Scott J Machine, program product, and computer-implemented methods for confirming a mobile banking request
DE202010017690U1 (de) 2009-06-09 2012-05-29 Google, Inc. Programmierung von Dimm-Abschlusswiderstandswerten
US20110082737A1 (en) 2009-09-28 2011-04-07 Crowe Andrew B Computer-implemented methods, computer program products, and systems for management and control of a loyalty rewards network
US9482718B2 (en) * 2014-01-13 2016-11-01 Texas Instruments Incorporated Integrated circuit
US9779610B2 (en) 2015-12-16 2017-10-03 Honeywell International Inc. Automated loop check for smart junction boxes
KR20230086446A (ko) * 2021-12-08 2023-06-15 에스케이하이닉스 주식회사 저장 장치, 호스트 장치 및 그들의 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3122996A (en) * 1959-12-09 1964-03-03 heatwole
GB1131085A (en) * 1966-03-25 1968-10-23 Secr Defence Improvements in or relating to the testing and repair of electronic digital computers
GB1285445A (en) * 1968-08-30 1972-08-16 Smiths Industries Ltd Improvements in or relating to access-control equipment and item-dispensing systems including such equipment
GB1271712A (en) * 1969-04-21 1972-04-26 Zentronik Veb K Digital electric business machine when programmed for calculating a check sum
JPS5336358B1 (de) * 1970-10-17 1978-10-02
US3831148A (en) * 1973-01-02 1974-08-20 Honeywell Inf Systems Nonexecute test apparatus
US3982103A (en) * 1973-10-12 1976-09-21 Telecredit, Inc. Credit verification system
US4075460A (en) * 1975-11-28 1978-02-21 Incoterm Corporation Cash dispensing system
US4034194A (en) * 1976-02-13 1977-07-05 Ncr Corporation Method and apparatus for testing data processing machines
US4134537A (en) * 1977-04-25 1979-01-16 Transaction Technology, Inc. Transaction terminal
US4191996A (en) * 1977-07-22 1980-03-04 Chesley Gilman D Self-configurable computer and memory system
US4122996A (en) * 1977-08-30 1978-10-31 Xerox Corporation Copy reproduction machine with controller self check system
US4227244A (en) * 1978-11-30 1980-10-07 Sperry Corporation Closed loop address

Also Published As

Publication number Publication date
GB2132394B (en) 1984-12-19
US4334307A (en) 1982-06-08
GB8331380D0 (en) 1984-01-04
FR2472783A1 (fr) 1981-07-03
GB2066529B (en) 1984-07-25
GB2066529A (en) 1981-07-08
JPS56101255A (en) 1981-08-13
GB8401531D0 (en) 1984-02-22
GB2132394A (en) 1984-07-04
AU6511680A (en) 1981-07-02
CA1165450A (en) 1984-04-10

Similar Documents

Publication Publication Date Title
DE3048614A1 (de) Datenverarbeitungssystem mit pruefeinrichtung
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE3903835C2 (de)
DE2657848C2 (de)
DE2744531C2 (de) Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage
CH522921A (de) Rechneranlage
DE2328058C2 (de) Fehlerdiagnoseeinrichtung in einer digitalen Datenverarbeitungsanordnung
DE2030812A1 (de) Modulare Datenrechnersysteme
DE3638572C2 (de)
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2714805A1 (de) Datenverarbeitungssystem
DE1901228B2 (de) Datenverarbeitungsanlage mit einrichtungen zur wiederholung von operationen beim auftreten eines fehlers
DE3239221A1 (de) Integrierte vorrichtung und verfahren zum pruefen eines mikroprozessor-systems
DE2719253B2 (de) Schnittstellenschaltung für Datenverarbeitungsanlagen
DE2248296A1 (de) Programmsteuereinrichtung
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE3035506A1 (de) Daten-dialogsystem
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2237672A1 (de) Fehlerpruef- und fehlerdiagnoseeinrichtung in einer elektronischen datenverarbeitungsanlage und verfahren zu deren betrieb
DE19604251C2 (de) Emulationsvorrichtung für Microcomputer, Verfahren zur Erfassung einer Vielzahl von Statusdaten und Fehlerbeseitigungssystem
DE2363846C2 (de) Datenverarbeitungsanlage mit einer Schaltungsanordnung zur Steuerung des Datentransfers zwischen dem Hauptspeicher und mehreren peripheren Geräten
DE2658864A1 (de) Pruefsystem fuer eine mikroprogrammierte verarbeitungseinheit
DE2719278B2 (de) Schaltungsanordnung für hintereinander geschaltete Steuereinheiten zum Anschluß von Ein/Ausgabegeraten an eine Datenverarbeitungsanlage
DE3013070C2 (de) Schaltungsanordnung zur Bearbeitung von aus mehreren peripheren Geräten herangeführten Anforderungssignalen innerhalb einer datenverarbeitenden Einrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal