DE3331090C2 - - Google Patents

Info

Publication number
DE3331090C2
DE3331090C2 DE3331090A DE3331090A DE3331090C2 DE 3331090 C2 DE3331090 C2 DE 3331090C2 DE 3331090 A DE3331090 A DE 3331090A DE 3331090 A DE3331090 A DE 3331090A DE 3331090 C2 DE3331090 C2 DE 3331090C2
Authority
DE
Germany
Prior art keywords
instruction
computer
print
program
display
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.)
Expired - Lifetime
Application number
DE3331090A
Other languages
English (en)
Other versions
DE3331090A1 (de
Inventor
Takuro Yamatokoriyama Nara Jp Omori
Shigenobu Tenri Nara Jp Yanagiuchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of DE3331090A1 publication Critical patent/DE3331090A1/de
Application granted granted Critical
Publication of DE3331090C2 publication Critical patent/DE3331090C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function

Description

Die Erfindung betrifft ein Verfahren, mit dem eine von einem bestimmten Rechnertyp nicht eindeutig interpretierbare Anweisung für diesen Rechnertyp auf mindestens zwei unterschiedliche Arten ausführbar gemacht wird. Außerdem betrifft die Erfindung einen Rechner zum Durchführen dieses Verfahrens.
Es gibt verschiedene Arten von Rechnern, z. B. Großrechner, Tischrechner, Personal Computer und Taschenrechner. Bei den meisten Rechnertypen sind Lese/Schreib-Speicher (RAM) oder Festspeicher (ROM) in Form von Moduln angeschlossen. Diese speichern ein Programm, welches der Rechner ausführen soll. Ein Programm besteht aus mehreren Anweisungen. Es ist klar, daß Rechner mit identischem Befehlssatz dieselben Programme ohne Änderungen ausführen können.
Nun gibt es bestimmte Rechnertypen, die sich sehr stark ähneln und die einen zwar nicht identischen, aber sehr ähnlichen Befehlssatz aufweisen.
Soll der eine Befehlssatz bzw. ein Programm mit einem gewissen ersten Befehlssatz, der für einen ersten Rechner ausgelegt ist, auf einem anderen Rechner ausgeführt werden, so müssen Programmänderungen vorgenommen werden. Programmänderungen sind jedoch insbesondere dann schwierig, wenn das Programm sich in einem Festspeicher befindet, der in Modulform an den Rechner angeschlossen ist.
Es sei z. B. angenommen, ein erster Rechner "A" und ein zweiter Rechner "B" wären so ausgelegt, daß der Rechner "A" einen Satz von Anweisungen "a" ausführe, unter denen sich eine Anweisung "PRINT" befinde, die den Rechner veranlaßt, eine Information beispielsweise auf einem Bildschirm anzuzeigen. Wenn nun an den Rechner "A" ein Drucker angeschlossen ist, so kann dies bedeuten, daß die Anweisung "PRINT" einen Ausdruck der Information über den Drucker bewirkt. Der Rechner "B" besitze nun einen weiteren Satz von Anweisungen "b", darunter die Anweisung "PRINT" für eine Anzeige auf einem Bildschirm, und weiterhin eine Anweisung "LPRINT", wodurch der Rechner angewiesen wird, eine Information auszudrucken.
Wenn nun ein Programm, welches die obengenannten Anweisungen "a" enthält, bei einem Rechnertyp "B" verwendet wird, so bleibt beispielsweise bei der Anweisung "PRINT" offen, ob nun die Anzeige über den Bildschirm oder ein Ausdruck über einen Drucker erfolgen soll.
Der oben geschilderte Fall steht im Gegensatz zu einer für Maschinenbefehle bekannten Maßnahme (DE 29 07 181 A1, wonach in einem Befehlsregister ein Maschinenbefehl gespeichert wird, der von einem Befehls-Decodierer in Signale auf einer oder einigen von mehreren bestimmten Steuerleitungen decodiert wird, wobei an den Decodierer-Eingang zusätzlich ein Befehlssatz-Modifizierregister angeschlossen ist, dessen Inhalt zu bewirken vermag, daß bei ein- und demselben Befehl innerhalb des Befehlsregisters verschiedene Steuerleitungen aktiviert werden. Wie gesagt, geht es also hier nicht um das Modifizieren von Maschinenbefehlen in einem einzigen Rechner, sondern vielmehr darum, einen Befehlssatz bei verschiedenen Rechnertypen anwenden zu können, wobei nicht eindeutig interpretierbare Anweisungen verschiedenartig ausführbar gemacht werden.
Aufgabe der Erfindung ist es daher, einen Rechner anzugeben, der bei nicht-eindeutig interpretierbaren Anweisungen eine Entscheidung trifft, welche der möglichen Ausführungsarten durch die Anweisung veranlaßt wird.
Gelöst wird diese Aufgabe erfindungsgemäß dadurch, daß ein Ausführungsart-Schalter in einen die gewünschte Art der Ausführung kennzeichnenden Auswahlzustand gebracht wird, und daß dann beim Auftreten der Anweisung während der Interpretation die Interpretationsroutine den jeweiligen Auswahlzustand abfragt und den Rechner in die dem Abfrage­ ergebnis entsprechende Ausführungsart steuert.
Es sei nochmals das oben erwähnte Beispiel betrachtet: Wenn das Programm mit den Anweisungen "a" beim Rechner "B" eingesetzt wird, so steht nicht eindeutig fest, wie die Anweisung "PRINT" ausgeführt werden soll. Durch das erfindungsgemäße Verfahren erfolgt eine Abfrage eines Auswahlzustands, und abhängig vom Ergebnis dieser Abfrage wird die Anweisung auf die eine oder die andere Art ausgeführt, es wird also bei dem obengenannten Beispiel entweder eine Anzeige über einen Bildschirm ausgegeben, oder es erfolgt ein Ausdruck über den an den Rechner angeschlossenen Drucker.
Ein erfindungsgemäß ausgestalteter Rechner beinhaltet ein Flag (Anspruch 2), welches abhängig von der Stellung des Ausführungsschalters gesetzt bzw. zurückgesetzt wird. Bei der Interpretation einer Anweisung wird dieses Flag abgefragt, und abhängig vom Zustand des Flags erfolgt dann die eine oder die andere Art der Ausführung der Anweisung.
Im folgenden werden Ausführungsbeispiele der Erfindung anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm eines Rechners,
Fig. 2 und 3 jeweils ein Flußdiagramm, welches die Arbeitsweise des Rechners nach Fig. 1 erläutert,
Fig. 4 den Programmaufbau eines Einzelzeilenbefehls, wie er in dem Programm enthalten ist, das für den erfindungsgemäßen Rechner verwendet wird und
Fig. 5 ein Beispiel eines Programms, wie es für den erfindungsgemäßen Rechner verwendet wird.
Eine bevorzugte Ausführungsform der Erfindung wird anhand eines programmierbaren elektronischen Rechners beschrieben.
Fig. 1 zeigt ein Blockdiagramm eines programmierbaren elektronischen Rechners. Die Schaltung nach Fig. 1 enthält eine zentrale Verarbeitungseinheit (CPU) 1, als Anweisungsinterpretationseinrichtung einen Festspeicher (ROM) 2, als Anweisungsspeicher einen Schreib/Lese-Speicher (RAM) 3, eine Tastatur 4, einen Anzeigespeicher und Puffer 5, eine Anzeige 6 und einen Drucker 7.
Entsprechend den im ROM 2 gespeicherten Schritten dient die CPU 1 dazu, über die Tastatur 4 eingegebene Tasteninformation einzulesen und die notwendigen Operationen durchzuführen, z. B. Rechenschritte auszuführen. Die CPU 1 hat weiterhin die Aufgabe, in den Anzeigespeicher und Puffer 5 Anzeigedaten einzuschreiben und die Daten zur Anzeige zu bringen. Eine weitere Aufgabe der CPU 1 besteht darin, in den RAM 3 über Tasten ein­ gegebene Information einzuschreiben und zu veranlassen, daß auf der Anzeige 6 die Anzeigedaten dargestellt werden wie sie in dem RAM 3 gespeichert sind. Die CPU 1 veranlaßt den Drucker 7, die den Anzeigedaten entsprechende Information auszudrucken.
Die CPU 1 enthält einen Adreßbusanschluß 1A, einen Datenbus­ anschluß 1D, ein Eingabe/Ausgabe-Port 1P, einen Lese/Schreib- Signal-Anschluß R/W, einen Tasten-Durchschaltsignal-Anschluß S und einen Tasteneingabesignalanschluß K. Die Lese/Schreib-(R/W)- Signale werden nach Maßgabe von Mikrobefehlen, die von einem Befehlsdecoder ausgegeben werden, und Zeitsteuersignalen erzeugt. Die Durchschaltsignale S werden dazu benutzt, die über die Tastatur eingegebene Information in Kombination mit den Tasteneingabesignalen festzustellen.
Der ROM 2 speichert Überwachungsschritte zum Auslesen und Anzeigen von über die Tastatur eingegebenen Informationen. Außerdem speichert der ROM 2 Interpreterschritte, damit der Betrieb so erfolgt, wie es das in dem RAM 3 gespeicherte Programm vorgibt. Der RAM 3 speichert das Programm und Daten.
Die Tastatur 4 enthält mehrere Tastenschalter: Zifferntaste, eine Lösch-Eingabetaste, einer "Enter"-Taste sowie weiteren Tasten, wie es von einem üblichen Rechner her bekannt ist.
Fig. 2 zeigt ein Flußdiagramm des in dem ROM 2 gespeicherten Programms. In einer bevorzugten Ausführungsform der Erfindung ist das Programm in der Programmiersprache BASIC geschrieben.
Schritt 1: Der Rechner wird eingeschaltet.
Schritt 2: Der Rechner wird initialisiert.
Schritt 3: Der Rechner führt eine Tasten-Leseroutine aus, um über die Tastatur eingegebene Informationen zu lesen.
Schritt 4: Es wird festgestellt, ob die "ENTER"-Taste betätigt wird oder nicht.
Schritt 5: Wird die "ENTER"-Taste nicht betätigt, werden Routinen für Tasten-Code-Anzeige oder andere Verarbeitungs- Routinen ausgewählt. Schließlich wird erneut der Schritt zum Einlesen der Tasteneingabe (Schritt 3) ausgewählt.
Schritt 6: Wird festgestellt, daß die "ENTER"-Taste getätigt wird, so wird danach festgestellt, ob Tastenbefehle Anweisungs­ ausführung ("RUN ENTER") eingegeben werden.
Schritt 7: Falls nicht, so werden manuelle Operationen durchgeführt, um eine Anweisung oder eine Operation durchzuführen, die derzeit auf der Anzeige dargestellt wird.
Schritt 8: Wird festgestellt, daß der "Laufbefehl" gegeben wurde, so wird das derzeitig in dem Rechner gespeicherte Programm ausgeführt. Hierzu wird der Rechner initialisiert, damit ein oder mehrere, zu dem Programm gehörige Flags und Speicher zurückgesetzt werden.
Schritt 9: Das LP-Flag wird zurückgesetzt. Das LP-Flag ist derart ausgebildet, daß es bei Ausführung der Anweisung "PRINT" die Anweisung "PRINT" an den Drucker 7 gibt, während das LP-Flag gesetzt ist, während andernfalls die Anweisung "PRINT" an die Anzeige 6 gegeben wird, während das LP-Flag zurückgesetzt ist. Das Zuführen der Anweisung "PRINT" an den Drucker 7 veranlaßt diesen, Information auszudrucken. Das Zuführen der Anweisung "PRINT" an die Anzeige 6 veranlaßt diese, die Information dar­ zustellen.
Das LP-Flag ist innerhalb des RAM 3 gebildet.
Schritt 10: Es wird eine Interpreter-Routine ausgewählt. Anschließend wird erneut der Befehl "Einlesen Tasteneingabe" (Schritt 3) ausgewählt.
Fig. 3 zeigt ein detailliertes Flußdiagramm der in Fig. 2 gezeigten Interpreter-Routine (10).
Schritt 11: Es wird festgestellt, ob die Anweisung vorliegt, daß die "PRINT"-Anweisung gleich ist der Anweisung "LPRINT", was ausgedrückt wird durch "PRINT=LPRINT".
Schritt 12: Falls ja, wird das LP-Flag durch das Programm gesetzt.
Schritt 13: Ein auf die als nächstes auszuführende Anweisung zeigender Zeiger wird vorgerückt.
Schritt 14: Es wird festgestellt, ob das Programm zum Ende gekommen ist oder nicht. Falls nicht, wird erneut Schritt 11 aus­ gewählt.
Schritt 15: Ist die Anwort im Schritt 11 "NEIN", so wird Schritt 15 ausgewählt, um festzustellen, ob die Anweisung vorliegt, daß "PRINT" gleich ist der Anweisung "PRINT", was ausgedrückt wird durch "PRINT". Falls die Anwort im Schritt 15 "JA" ist, wird das LP-Flag zurückgesetzt. Es wird dann der Schritt 13 ausgewählt.
Wenn im Schritt 15 die Antwort "NEIN" ist, so wird im Schritt 17 festge­ stellt, ob die Anweisung "PRINT" vorliegt. Ist die Antwort "JA" so wird "PRINT" ausgeführt.
Schritt 18: Es wird festgestellt, ob das LP-Flag gesetzt ist oder nicht.
Schritt 19: Ist das LP-Flag gesetzt, so werden die Anzeigedaten an den Drucker 7 ausgegeben.
Schritt 20: Ist das LP-Flag zurückgesetzt, so werden die Anzeigedaten an die Anzeige 6 ausgegeben. Anschließend wird der Schritt 13 ausgeführt.
Schritt 21: Ist die Anwort im Schritt 17 "NEIN", so wird Schritt 21 ausgewählt, um festzustellen, ob ein Programmbe­ endigungsbefehl vorliegt, beispielsweise "ENDE" oder "STOP", oder nicht. Falls ja, endet die Interpretations-Routine. Falls nein, werden die betreffenden Anweisungen ausgeführt, so daß die Schritte 22 und 13 ausgewählt werden. Fig. 4 zeigt den Aufbau eines Einzelzeilensegments eines speziellen Programms.
Das Einzelzeilensegment des Programms wird gebildet durch den Abschnitt "Zeilennummer", einen oder mehreren Befehlssätze und den Abschnitt "ENTER". Das Programm enthält mehrere Segmente.
Nachdem der Schritt 13 gemäß Fig. 3 ausgeführt wurde, wird der Zeiger auf den Kopf eines nachfolgenden Befehlsatzes (Satzes von Anweisungen) ge­ richtet.
Fig. 5 zeigt ein Beispiel eines speziellen Programms, wie es bei der Erfindung eingesetzt wird.
Gemäß Fig. 5 wird das folgende Programm eingegeben:
10 PRINT=LPRINT
20 PRINT "DRUCKER"
30 PRINT=PRINT
40 PRINT "Anzeige"
Während der Ausführung der Anweisung in Zeile "10" wird das LP-Flag gesetzt. Die Anweisung in Zeile "20" veranlaßt, daß der Drucker 7 das Wort "DRUCKER" ausdruckt. Die Anweisung in Zeile "30" setzt das LP-Flag zurück. Die Anweisung in Zeile "40" veranlaßt die Anzeige 6, das Wort "ANZEIGE" darzustellen.
Es sei nochmals das in der Beschreibungseinleitung angesprochene Beispiel herangezogen. Danach ist wenigstens eine Anweisung (statement) zum Übersetzen oder Teilen wenigstens zweier Funktionen in das Programm eingefügt, damit beispielsweise festgestellt wird "PRINT=LPRINT" und "PRINT=PRINT". Hierdurch wird erkannt, daß die Anweisung "PRINT" unter den Anweisungen (a) der Anweisung "LPRINT" unter den Anweisungen (b) entspricht. Das LP-Flag hat die Aufgabe, zu erkennen, ob eine solche Anweisung vorliegt. Das LP-Flag ist ein wesentlicher Bestandteil des Rechners gemäß dem PA 2. Es reicht also eine so kleine Programmänderung wie das Einfügen einer solchen Anweisung in das Programm aus, damit die Anweisungen "a" auf den Rechner "B" angewendet werden können.
In jedem beliebigen, für den Rechner "B" geeigneten Programm kann man die Anweisung "PRINT" dafür benutzen, sowohl die Anweisung "ANZEIGE" zu geben, damit die Anzeigevorrichtung die Anzeigedaten darstellt, als auch die Anweisung "DRUCKEN" (PRINT) zu geben, um den Drucker zu veranlassen, die Daten auszudrucken. Hierbei braucht kein separater Bezug auf die Anweisung "ANZEIGE" und den Befehl "DRUCKEN" gegeben zu werden. Während des Programms läßt sich die Funktion der Anweisung "PRINT" abhängig von einem Rechner identifizieren und entscheiden.
Die oben beschriebene bevorzugte Ausführungsform der Erfindung sieht vor, daß die Übersetzung einer speziellen Programmanweisung auf der Grundlage der in dem Programm enthaltenen Anweisung durchgeführt wird. Der Programmübersetzungsbefehl kann durch Betätigen eines Ausführungsartschalters zur Auswahl einer Betriebsart eingegeben werden. In einem solchen Fall ist keine Programmänderung zum Durchführen des Programms erforderlich. Die Erfindung findet also Anwendung bei solchen Rechnern, die ein festgespeichertes Programm aufweisen und bei denen keine Programmänderung möglich ist.

Claims (3)

1. Verfahren, mit dem eine von einem bestimmten Rechnertyp (B) nicht eindeutig interpretierbare Anweisung für diesen Rechnertyp (B) auf mindestens zwei unterschiedliche Arten ausführbar gemacht wird, dadurch gekennzeichnet,
daß ein Ausführungsart-Schalter in einen die gewünschte Art gebracht wird,
und daß dann beim Auftreten der Anweisung während der Interpretation die Interpretationsroutine den jeweiligen Auswahlzustand abfragt und den Rechner in die dem Abfrageergebnis entsprechende Ausführungsart steuert.
2. Rechner zum Durchführen des Verfahrens nach Anspruch 1, der ein Flag (LP) abhängig von der Stellung des Ausführungsart- Schalters gesetzt wird und bei der Interpretation abgefragt wird.
3. Rechner nach Anspruch 2, mit einer Anzeigeeinrichtung (6) und einem Drucker (7), dadurch gekennzeichnet, daß die Anweisung eine Ausgabeanweisung ist, die nach dem jeweiligen Auswahlzustand als Anweisung für eine Anzeige (6) oder einen Drucker (7) interpretiert wird.
DE19833331090 1982-08-30 1983-08-29 Befehlsuebersetzender rechner Granted DE3331090A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57151538A JPS5938870A (ja) 1982-08-30 1982-08-30 電子式計算機

Publications (2)

Publication Number Publication Date
DE3331090A1 DE3331090A1 (de) 1984-03-08
DE3331090C2 true DE3331090C2 (de) 1991-05-02

Family

ID=15520696

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833331090 Granted DE3331090A1 (de) 1982-08-30 1983-08-29 Befehlsuebersetzender rechner

Country Status (3)

Country Link
US (1) US4873628A (de)
JP (1) JPS5938870A (de)
DE (1) DE3331090A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
CA2087735A1 (en) * 1990-07-20 1992-01-21 Yuan Shi System for high-level virtual computer with heterogeneous operating systems
US5430550A (en) * 1991-06-14 1995-07-04 Minolta Camera Kabushiki Kaisha Image reading apparatus which corrects for positional and angular deviation between the image sensor and the document
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4084235A (en) * 1975-04-14 1978-04-11 Honeywell Information Systems Inc. Emulation apparatus
JPS5313854A (en) * 1976-07-23 1978-02-07 Panafacom Ltd Information processor
US4117536A (en) * 1976-12-27 1978-09-26 International Business Machines Corporation Instruction processing control apparatus
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
NL7906416A (nl) * 1979-08-27 1981-03-03 Philips Nv Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden.
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
JPS5714942A (en) * 1980-06-30 1982-01-26 Sharp Corp Display control system
US4370709A (en) * 1980-08-01 1983-01-25 Tracor, Inc. Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases

Also Published As

Publication number Publication date
JPS5938870A (ja) 1984-03-02
DE3331090A1 (de) 1984-03-08
US4873628A (en) 1989-10-10

Similar Documents

Publication Publication Date Title
DE3151106C2 (de)
DE3629104C2 (de)
DE2536616C3 (de) Schaltungsanordnung zur Verbindung einer eine Eingabetastatur und eine Anzeigeeinrichtung enthaltenden Engabe/Ausgabe-Einrichtung über eine Busleitung mit einem zu einem Mikrorechner gehörenden Mikroprozessor
DE3317325C2 (de)
DE3431255C2 (de)
DE2504627C2 (de) Autonomes Datenverarbeitungsgerät
DE69722652T2 (de) System und verfahren zum ferngruppieren des inhalts eines historischen kellerspeichers
DE2264920A1 (de) Elektronischer rechner
DE3047251A1 (de) Rechner
DE2226290A1 (de) Verfahren und einrichtung zur anzeige mehrerer unterschiedlicher informationsabschnitte
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE2541090A1 (de) Vorrichtung zur codierung und/oder vorzugsweise gleichzeitiger anzeige einer grafik
DE3320213A1 (de) Elektronischer rechner mit pruefmoeglichkeit
DE3134282A1 (de) Verfahren zur darstellung ideografischer zeichen und vergleichbarer graphiken
DE2145709A1 (de) Datenverarbeitungsanlage
DE3520510A1 (de) Programmierbare steuereinheit
DE4109785C2 (de) Verfahren zur Aufbereitung von Wörterbuchdateien und zur Erstellung von Anwendungsprogrammen sowie System zur Durchführung dieses Verfahrens
DE2420057A1 (de) Elektronischer computer fuer gespeicherte programme
DE3331090C2 (de)
DE3506592C2 (de) Aufzeichnungsgerät
DE3214117A1 (de) Elektronisches uebersetzungsgeraet mit erweitertem speicher
DE3327874C2 (de)
DE3503456A1 (de) Vorrichtung zum erstellen und editieren eines schriftsatzes
DE3121046C2 (de)
DE3234892C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: KLUNKER, H., DIPL.-ING. DR.RER.NAT. SCHMITT-NILSON

D2 Grant after examination
8364 No opposition during term of opposition