DE3048614A1 - Datenverarbeitungssystem mit pruefeinrichtung - Google Patents
Datenverarbeitungssystem mit pruefeinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing 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.
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.
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.
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.
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
ORG OFFFOH
SELF TEST CONTROL LOOP SELF TEST BEGINS HERE
;BEGINNING OF CODE SEGMENT
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 |
JMP MEMTST
CALL IOTST
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
8088 CPU TEST
CPUERR:
CPUTST
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
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
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
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
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
EQU $
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 |
;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
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
}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
•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
;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 #
;VERIFY LOCATION, AL * O ->
NO ERROR
;CLEAR TEST LOCATION
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
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
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 $
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
;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
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
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
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
RET
;END OF SIGNATURE CALCULATION - R E T U R N
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
RET
jAL = INTERRUPT RESPONSE STS (O * PASS) 67
;BIT 2 OF AL = DATA FOR LED 12 ;DISPLAY LED 12
;RETURN
130037/0807
30A861A
SAL DI,1
SAL DI,1
IN AL,DX
;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
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
IN AL ,DX
IN AL,DX
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
;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
;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 ♦
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
- 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
- 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
USED IN D1,G4-1
USED IN "64-2
USED IN '64-2
USED IN D4.D7, D10
130037/0807
Claims (12)
- 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; undeine 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. System nach Anspruch 1, gekennzeichnet durch eine Steuereinrichtung zur Freigabe der Testeinrichtung bei jeder Systemeinschaltung.130037/0807
- 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. System nach Anspruch 3, gekennzeichnet durchMittel 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. System nach Anspruch 4, gekennzeichnetdurcheine Multiplikation, bei der die erste Konstante den Wert 2 aufweist.
- 6. System nach Anspruch 5, gekennzeichnet durcheine Addition, bei der die zweite Konstante den Wert 1 aufweist .130037/0807
- 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. System nach Anspruch 7, gekennzeichnet
durcheine Steuereinrichtung zur Freigabe der dritten Testeinrich— tung bei jeder Systemeinschaltung. - 9. System nach Anspruch 1 mit mehreren E/A-Steuereinrichtungen, gekennzeichnet durcheine 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. System nach Anspruch 9, wobei die ausgewählte E/A-Steuereinrichtung Mittel zu Erzeugung mehrerer Unterbrechungs-Antwortsignale mit unterschiedlichen lünterbrecnungspegeln aufweist, gekennzeichnet durcheine sechste Testeinrichtung zur Aufzeichnung der Anzahl der von der ausgewählten E/A-Steuereinrichtung empfangenen Unterbrechungs-Antwortsignale; undeine siebte Testeinrichtung zum Vergleich der Anzahl der von der sechsten Testeinrichtung aufgezeichneten Antwortsignale
mit der Anzahl der zuvor für eine andere E/A-Steuereinrichtung130037/0807aufgezeichneten 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. 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. System nach Anspruch 11, gekennzeichnet durchMittel zur Auswahl jeder E/A-Steuereinrichtung der Reihe nach, wodurch ein Ünterbrechungs-Statuswort für jede Steuereinrichtung erzeugt wird; undeine Einrichtung zum Einspeichern eines jeden Unterbrechungs-Statuswortes in einem unterschiedlichen Speicherplatz der Speichereinrichtung.130037/0807
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)
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)
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 |
-
1979
- 1979-12-28 US US06/108,047 patent/US4334307A/en not_active Expired - Lifetime
-
1980
- 1980-11-10 CA CA000364346A patent/CA1165450A/en not_active Expired
- 1980-12-05 AU AU65116/80A patent/AU6511680A/en not_active Abandoned
- 1980-12-22 GB GB8041006A patent/GB2066529B/en not_active Expired
- 1980-12-23 DE DE19803048614 patent/DE3048614A1/de not_active Withdrawn
- 1980-12-26 FR FR8027615A patent/FR2472783A1/fr not_active Withdrawn
- 1980-12-27 JP JP18944880A patent/JPS56101255A/ja active Pending
-
1983
- 1983-11-24 GB GB838331380A patent/GB8331380D0/en active Pending
-
1984
- 1984-01-20 GB GB08401531A patent/GB2132394B/en not_active Expired
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 |