DE3243502C2 - - Google Patents

Info

Publication number
DE3243502C2
DE3243502C2 DE3243502A DE3243502A DE3243502C2 DE 3243502 C2 DE3243502 C2 DE 3243502C2 DE 3243502 A DE3243502 A DE 3243502A DE 3243502 A DE3243502 A DE 3243502A DE 3243502 C2 DE3243502 C2 DE 3243502C2
Authority
DE
Germany
Prior art keywords
program
rom
ram
area
line
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
DE3243502A
Other languages
English (en)
Other versions
DE3243502A1 (de
Inventor
Masuaki Kyoto Jp Morino
Yoshiyuki Fujikawa
Isamu Nara Jp Haneda
Tetsuo Kyoto Jp Myoi
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 DE3243502A1 publication Critical patent/DE3243502A1/de
Application granted granted Critical
Publication of DE3243502C2 publication Critical patent/DE3243502C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Calculators And Similar Devices (AREA)

Description

Die Erfindung betrifft einen elektronischen Kleinrechner nach dem Oberbegriff des Patentanspruchs 1.
Bei einem herkömmlichen elektronischen Rechner wird ein Programm in einen Schreib/Lese-Speicher (RAM) eingeschrieben, eingegeben und dann ausgeführt. Oder aber es wird kein Programm geschrieben, sondern ein erweiterbarer Allzweck-Festwertspeicher (ROM) für mehrere Programme in Modulform verwendet, dessen Programme ausgewählt in den RAM übertragen und dann ausgeführt werden. Wenn bei diesem herkömmlichen elektronischen Rechner eine höhere Dialogsprache wie Basic verwendet wird, müssen der RAM, der die Programme speichert und der ROM, der das Betriebsprogramm enthält, Speicher von ziemlich großer Kapazität sein, und ein solcher RAM mit hohem Speichervermögen und ein solcher Steuer-ROM mit hohem Speichervermögen müssen in den Rechner eingebaut sein. Das Speichervermögen eines RAM mit hoher Integration (large scale integrated construction) liegt nur zwischen 10% und weniger als 1% des Speichervermögens eines ROMs gleicher Größe. Bei einem herkömmlichen kleinen tragbaren elektronischen Rechner ist daher entsprechend den Grenzen des Speichervermögens des RAMs die Kapazität des Programms, das ausgeführt werden kann, notwendigerweise begrenzt, und daher kann ein Programm eines erweiterbaren ROMs nicht wirkungsvoll genutzt werden.
Rechnerarchitekturen zur direkten Auslesung von in einem ROM enthaltenden Programmteilen sowie mit Anschlüssen für einsteckbare ROMs sind in der US-PS 37 20 820 und in Kraft/Toy, "Mini/Mikrocomputer Hardware Design", Prentice-Hall. Inc. Englewood Cliffs, New Jersey 1979, Seiten 47 bis 51 offenbart. In der DE-OS 26 55 241 ist ein programmierbarer Rechner offenbart, bei dem ein Teil des Speicherraums für wahlweise einsteckbare ROMs benutzt werden kann. Die dort offenbarten Vorrichtungen erfordern jedoch einen hohen Schaltungsaufwand, was hohe Kosten und Fehleranfälligkeit mit sich bringt. Sie sind außerdem nur für den Einsatz in Tischrechnern geeignet.
Der Erfindung liegt die Aufgabe zugrunde, einen Kleinrechner nach dem Oberbegriff des Patentanspruchs 1 zu schaffen, der bei insgesamt kleinvolumiger Ausbildung, insbesondere bezüglich des Hauptspeichers, und einfachem Aufbau zur Verarbeitung auch umfangreicher Programme geeignet ist.
Die erfindungsgemäße Lösung dieser Aufgabe erfolgt durch die kennzeichnenden Merkmale des Patentanspruchs 1.
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
In einen erfindungsgemäßen elektronischen Rechner können Programme über eine Tasteneingabe in ein RAM eingegeben und gespeichert werden. Aus dem Inhalt des RAM können diese Programme ausgelesen und ausgeführt werden, während zusätzlich Programme, vorab in einen ROM eingeschrieben und dort gespeichert werden können. Aus dem Inhalt des ROMs können diese Programme ausgelesen und direkt ausgeführt werden.
Da es für ein ROM-Programm gemäß der vorliegenden Erfindung nicht notwendig ist, dieses zuerst in einen RAM zu übertragen, bevor es ausgeführt wird, kann der Inhalt des Speichers wirkungsvoll ausgenutzt werden. Das heißt, die vorab eingeschriebenen und gespeicherten Programme in den erweiterbaren ROM benutzen nicht den RAM-Bereich, in dem das Benutzerprogramm gespeichert ist, und die große Menge von Programmen, die in dem erweiterbaren ROM enthalten ist, kann direkt ausgeführt werden. Darüber hinaus können die Benutzerprogramme und die Programme im erweiterbaren ROM miteinander verknüpft und dann ausgeführt werden. Außerdem ist es nicht erforderlich, Anweisungen dahingehend zu geben, die Programme im erweiterbaren ROM in den RAM zu übertragen.
Die Erfindung wird im folgenden anhand von durch Figuren veranschaulichten Ausführungsbeispielen näher erläutert. Es zeigen:
Fig. 1 eine Draufsicht auf eine Ausführungsform eines erfindungsgemäßen elektronischen Rechners;
Fig. 2 ein Blockdiagramm der Schaltung des Rechners gemäß Fig. 1;
Fig. 3 ein Blockdiagramm der Schaltung eines Prozessors, der Teil der Schaltung von Fig. 2 ist;
Fig. 4 ein Layout, das die Adreßbereiche eines RAM und zweier ROMs in einer erfindungsgemäßen Ausführungsform darstellt;
Fig. 5 ein Diagramm gespeicherter Adreßtabellen des einen ROM und des RAM von Fig. 4;
Fig. 6 ein Beispiel eines Programms für den Sprungbefehl GOTO;
Fig. 7 ein Flußdiagramm des GOTO-Befehls von Fig. 16;
Fig. 8 ein Flußdiagramm eines RUN-Befehls zum Ausführen eines Programms;
Fig. 9 ein Flußdiagramm, das die Ausführung einer Anweisung zum Auflisten des Inhalts eines Programms darstellt, und
Fig. 10 ein Flußdiagramm einer Anweisung zum Anzeigen des Status jedes eingegebenen Programms.
Ein elektronischer Rechner gemäß der Draufsicht der Fig. 1 weist eine Flüssigkristallanzeige 2 und eine Eingabetastatur 3 auf. Die Eingabetastatur 3 weist einige Buchstabeneingabetasten 4 und einige Ziffereingabetasten 5 wie auch eine Taste 6 zum Steuern der Eingabe auf. Die Anzeige 2 ist als Punktmatrix ausgebildet, mit sieben Punkten in der Höhe und 156 Punkten in der Breite. Sie zeigt in Querrichtung an, was als eine Zeile von Buchstaben und Ziffern bezeichnet wird.
Gemäß dem Blockdiagramm von Fig. 2 ist die Anregung jedes Punktes der Anzeige 2 durch eine Anzeigeansteuerungsschaltung 7 gesteuert. Einem Prozessor 8 sind ein Datenbus 9, ein Adreßbus 10 und ein Steuerbus 11 parallel geschaltet. An diese Busse 9, 10 und 11 sind ein RAM 12, ein ROM 13, ein Ein/Ausgabepuffer 14 und Verbinder 15 und 16 angeschlossen. Die Busse 9 und 10 sind mit der Anzeigensteuerschaltung 7 verbunden. Ein Tastenabtastsignal aus dem Ein/Ausgabepuffer 14 wird in eine Tasteneingabe/Ausgabeeinrichtung 3 eingegeben. Durch Betätigen der Tasten 4, 5 und 6, die die Tastenein/Ausgabeeinrichtung aufweist, wird ein Tastenrücksignal erhalten, das in den Prozessor 8 eingegeben wird. Im RAM 12 ist ein Systembereich SY enthalten, der für Flags und Register benutzt wird und der Programme usw. speichert. Vorab eingeschriebene Programme, wie ein Übersetzerprogramm, das Anweisungen ausführt und verschiedene Steuerprogramme sind in dem ROM 13 gespeichert. Der Verbinder 15 wird zum Anschließen eines externen RAM in Modulform und eines erweiterbaren ROM 61 verwendet. Der Verbinder 16 dient zum Anschließen von externen Ein/Ausgabeeinrichtungen wie Datenbändern und einem Drucker und wird auch zum Anschließen eines Speichers zum Erweitern des Speichervermögens verwendet. Mit einer Taktschaltung 17 ist der Ein/Ausgabe-Puffer 4 verbunden, der auch mit einer Ansteuerschaltung 18 in Verbindung steht, die ein Signal zum Ansteuern eines Summers oder anderer derartiger tonerzeugender Vorrichtungen 19 abgibt. Der Prozessor 8 gibt über eine Leitung 20 ein Anzeigen-Ein/Aus-Signal an die Anzeigensteuerschaltung 7 ab und gibt darüber hinaus ein Synchronisiersignal über eine Leitung 21 ab. Die Anzeigenansteuerschaltung 7 ist mit einem Anzeigenspeicher 22 ausgestattet, der einen Speicherbereich aufweist, der jedem Punkt der Flüssigkristallanzeige 2 entspricht, und der ein Segmentsignal über eine Leitung 23 an die Anzeige 2 abgibt. Der Prozessor 8 gibt über eine Leitung 24 ein Gegenelektrodensignal ab.
Gemäß dem Blockdiagramm von Fig. 3 weist der Prozessor 8 einen Programmzähler 30 auf, der ein 16-Bit-Register ist, das diejenige Adresse anzeigt, die auf die soeben ausgeführte Anweisung folgt. Nach Ausführung der angezeigten Anweisung wird der Inhalt des Programmzählers 30 automatisch um Eins erhöht, um wieder die nächste Adresse anzuzeigen. Ein Stapelzeiger 31 in Form eines 16-Bit-Registers zeigt die Adresse des nächsten Stapels an, der in der push-down- (Kellerungsprinzip) oder pop-up-Operation des RAM 12 verwendet werden kann. Jedes von drei Datenregistern 32, 33 und 34, die 16-Bit-Register sind, kann auch als Datenzeiger verwendet werden. Weiterhin ist ein Statusregister 35 in Form eines 5-Bit-Registers vorhanden, das den Status jeder Rechenart, z. B. Borrowsignal, Null, Überlauf von den Rechenergebnissen her, anzeigt. Ein Akkumulator 36 ist von 8-Bit-Bauweise und wird dazu verwendet, die Rechenergebnisse zurück zu halten und Daten in einen äußeren Speicher zu übertragen. Ein Adreßpuffer 37 ist mit dem Adreßbus 10 verbunden. Mit dem Adreßbus 10 sind Leitungen AD0 bis AD15 verbunden.
Eine Schaltung 38 für arithmetische und logische Operationen ist mit einem Bus 40 einmal direkt und einmal über einen Operationspuffer 39 verbunden. Ein von außen angeschlossenes Schwingelement 41 ist mit einer Schwingschaltung 42 verbunden. Das von dieser Schwingschaltung 42 abgegebene Signal wird in einer Teilerschaltung 43 halbiert, und das halbierte Ergebnis wird als Taktsignal ΦOS übertragen und gleichzeitig einer Taktsteuerschaltung 44 und einer Teilerschaltung 45 zugeführt. Die Taktsteuerschaltung 44 steuert den Beginn und das Ende eines internen Taktes auf ein WAIT-Signal hin. Die Teilerschaltung 45 gibt ein Synchronisiersignal HA ab und erhält ein Signal aus einer Zeitgebersteuerschaltung 46. Die Zeitgebersteuerschaltung 46 führt die Zähl- und Unterbrechungssteuerung für einen Zeitgeber 47 in 9-Bit-Bauweise aus. Der Zeitgeber 47 ist als Polynomialzähler ausgebildet und zählt die Zeit für die Unterbrechung des Zeitgebers. Eine Unterbrechungssteuerschaltung 48 überwacht Signale NMI und MI, die auf Signale von der Zeitgebersteuerschaltung 46 hin Unterbrechungen anfordern. Ein Zähler 49 wird zum Erzeugen des Gegenelektrodensignales für die Anzeige 2 verwendet. Ein Signal HIN, das von diesem Zähler 49 erhalten wird, entspricht im allgemeinen dem oben genannten Synchronisiersignal HA. Eine Anzeigesteuerschaltung 50 gibt Gegenelektrodensignale H0 bis H7 ab. Diese Anzeigensteuerschaltung 50 erhält Spannungen VDIS, VA, VB und VM von einer elektrischen Versorgungsschaltung, die in der Zeichnung nicht dargestellt ist. Es sind weiterhin Vielzweck-Flip-Flops PUF und PVF und ein Flip-Flop DISPF vorhanden, das die Steuerung für das Ein/Ausschalten der Anzeige besorgt. Auf die Eingabe von Signalen IN0 bis IN7 von der Tastatur 3 her, werden 8-Bit-Daten in einen internen Akkumulator eingegeben. Eine Datenbussteuerschaltung 51 erhält 8-Bit-Signale D0 bis D7 und gibt ein Steuersignal über den Bus 40 ab. Darüber hinaus sind ein Befehlsdekoder und eine Operationssteuerschaltung 52 vorhanden. Lesesignale für den Speicher und Schreibsignale aus diesem sind mit R/W bezeichnet. Der Speicher wird über Freigabesignale ME0 und MEI freigegeben.
Fig. 4 zeigt die Anordnung des RAM 12 und des ROM 13 des elektronischen Rechners 1 und den Adreßbereich des an diesen elektronischen Rechner 1 anschließbaren Erweiterungs-ROM 61. Das Steuerprogramm ist im ROM 13 enthalten. Im ROM 61 sind Bereiche zum Erhalten von Programmen enthalten. In einem Bereich IC ist der Identifizierungscode aufgezeichnet, der angibt, daß es sich um ein erweiterbares ROM handelt. In einem Bereich BA ist die Anfangsadresse für Programmspeicherung aufgezeichnet, in einem Speicherbereich SC ist ein Unterscheidungscode zum Bestimmen, ob der Inhalt eines Programms geheim ist oder nicht enthalten, und in einem Bereich RM sind Maschinenspracheprogramme zum Benutzen von Unterprogrammen usw. enthalten. Diese Programme nehmen einen Bereich RAP in dem RAM 12, wie später erläutert wird, sowie im ROM 61 einen Bereich ROP, in dem in derselben Sprache geschriebene Programme enthalten sind, und einen Bereich NC für weitere Verwendung auf.
Der RAM 12 verfügt über einen Bereich S, in dem ein Identifizierungscode, der anzeigt, daß es sich um einen RAM handelt, und Definitionen usw., gespeichert sind. Es sind weiterhin ein Bereich RAP, indem Programme gespeichert sind, ein unbenutzter Bereich (NC), ein Datenbereich DA, ein unbenutzter Bereich NC und ein Systembereich SY vorhanden.
Programme, die über die Tasten 4, 5, 6 usw. eingegeben werden, werden von der ersten Adresse des Bereichs RAP an gespeichert. Die letzte Adresse ist OBTM. Daten wie numerische und alphabetische Veränderliche und Veränderliche in Feldern usw. werden in dem Bereich DA gespeichert, mit Adressen, die von der oberen Adresse RE bis zur niedrigsten Adresse gespeichert werden, wobei die letzte Startadresse DP ist. Der Bereich (NC) kann daher als Bereich für weitere Programme und für Daten verwendet werden. Der Systembereich SY wird für jede Art von Flags und Registern verwendet.
In Fig. 5 stellt jeder Punkt P1 bis P8 gespeicherte Adreßtabellen des ROMs 61 und des RAMs 12 dar. Diese Punkte P1 bis P8 bilden einen Teil des Systembereichs SY von Fig. 4 für den RAM 12. Der Punkt P1 enthält die erste Adresse des erweiterbaren ROM 61, der Punkt P2 enthält die erste Programmadresse im erweiterbaren ROM 61, der Punkt P3 enthält die erste Adresse des RAM 12, der Punkt P4 enthält die letzte Adresse des RAM 12, der Punkt P5 enthält die erste Programmadresse im RAM 12, der Punkt P6 enthält die letzte Adresse des Programms im RAM 12, der Punkt P7 enthält die letzte Adresse des Datenbereichs, und der Punkt P8 enthält die Nummer der ausgeführten Zeile.
Beim Einschalten des elektronischen Rechners 1 wird zunächst festgestellt, ob der ROM 61 eingesteckt ist. Vor dem Abschalten werden, falls sich diese Bedingung geändert hat, die Inhalte der Punkte P1, P2, P3 und P4 aus dem ROM 61 und dem RAM 12 ausgelesen und in den Systembereich SY eingegeben. Die Startadresse des ROM 61 wird durch Feststellen der Existenz des Identifizierungscodes für den Bereich IC erhalten. Die Startadresse für das Programm im ROM 61 wird aus der Adreßangabe im Bereich BA erhalten. Sie ist in Fig. 4 mit (BA) bezeichnet. Die erste und die letzte Adresse des RAM 12 werden dadurch erhalten, daß festgestellt wird, in welchem Maße der RAM erweitert ist. Das heißt, der vorgeschriebene Code wird in dem Bereich S aufgezeichnet, und abhängig davon, ob dieser Code aufgezeichnet ist oder nicht, wird das Vorhandensein des RAM-Bereiches festgestellt. Darüber hinaus kann die letzte Adresse des RAM 12 bis zum Beginn des Systembereichs SY erweitert werden, d. h. bis zur letzten Adresse des Bereichs NC im RAM 12 gemäß Fig. 4. In diesem Fall ist jedoch der Anfang des Systembereiches SY zugleich die letzte Adresse im RAM 12. Die Startadresse und die letzte Adresse der Programme im RAM 12 wechseln abhängig von dem Initialisieren des Programms und der Programmeingabe und werden in Übereinstimmung mit dem Inhalt der Punkte P5 und P6 erneuert. Die letzte Adresse der Daten im RAM 12 ist DP in dem Bereich DA in Fig. 4. Der Datenbereich wird entsprechend der Ausführung des Programms sichergestellt, und der Inhalt des Punkts P7 wird erneuert. Während der Programmausführung wird die Zeilennummer LP jedesmal dann erneuert, wenn eine Programmzeile ausgeführt ist, und der Inhalt des Punktes P8 wird ebenfalls erneuert, so daß der Punkt P8 einem Register ZEILE′′ entspricht, das später beschrieben wird.
Fig. 6 zeigt ein Beispiel eines Programms für einen Sprungbefehl GOTO. Das Programm, das die Zeilen mit den Nummern 10, 20, 30 und 40 enthält, ist im erweiterbaren ROM 61 gespeichert, und das Programm mit den Zeilennummern 10, 15 und 20 ist ein Programm im RAM 12. Fig. 7 ist ein Flußdiagramm des GOTO-Befehls von Fig. 6.
Ein Register PAD′ ist ein Hilfsregister für PAD. Ein Register ZEILE′ ist ein Register, indem eine Zeilennummer eines gerade ausgeführten Programms gespeichert wird. Ein Register MARKE ist ein Register, in dem die bestimmte Marke des GOTO-Programms gespeichert ist. Ein Register MARKE′ ist ein Register, in dem die Marke der Programmzeile gespeichert ist.
In einem Schritt l1 wird die Programmzahl PAD, die gerade ausgeführt wird in PAD′ überführt, wenn kein Sprungziel aber ein Fehler vorliegt. Es wird dadurch angezeigt, wo der Fehler auftrat. Die durch PAD′ zum Zeitpunkt des Fehlers angezeigte Position ist die Position des Fehlers.
In einem Schritt l2 wird die Entscheidung getroffen, ob das Sprungziel der GOTO-Anweisung mit einer Marke versehen ist oder nicht. Für eine vorgegebene Marke werden einfache Anführungszeichen verwendet, wie in der Zeile <20 GOTO ′ABC′< in Fig. 6.
Im Schritt l3 wird die Marke des Sprungziels in das Register MARKE übertragen, und in einem Schritt l4 wird das Register PAD gelöscht, um im Programmspeicher von oben her nach dieser Marke und der Programmzeile mit der selben Marke zu suchen.
In einem Schritt l5 weist die Programmzeilenmarke, wie bei <15 ′ABC′ GOTO 10< von Fig. 6 ein Anführungszeichen auf, das hinter der Zeilennummer eingefügt ist. Von der angezeigten Position von PAD aus wird eine Suche der Marke in Richtung nach OBTOM hin durchgeführt. Wenn die Marke nicht gefunden wird, weil kein Sprungziel vorhanden ist, geht das Programm zum Schritt l16 über. Wenn die Marke gefunden wird, wird sie in MARKE′ überführt und diese Position geht in PAD über.
In einem Schritt l6 wird dann sichergestellt, ob die Marke die vorgegebene Marke ist oder nicht, und falls dies der Fall ist, geht das Programm zum Schritt l7 über, um dort die Anweisung auszuführen, die in der Programmzeile mit dieser Marke enthalten ist. Wenn es nicht die vorgegebene Marke ist, kehrt das Programm zum Schritt l5 zurück, um diese Marke zu finden.
In einem Schritt l8 wird die Entscheidung getroffen, ob eine Zeilennummer vorliegt oder nicht, wenn der im Schritt l2 bestimmte Sprung nicht mit Marke versehen ist. Wenn die Entscheidung negativ ist, geht das Programm zum Schritt l16 über.
Im Schritt l9 wird die Nummer des Sprungziels in ZEILE überführt, und in einem Schritt l10 wird die Entscheidung getroffen, ob das Sprungziel vor oder hinter der Zeile liegt, die gerade ausgeführt wird. In einem Schritt l11 wird, falls das Sprungziel hinter der gerade ausgeführten Zeile liegt, die Zeilennummer der nächsten Programzeile von PAD aus in Richtung OBTM nach ZEILE′ übertragen, und PAD wird dorthin gestellt. Wenn in oder hinter PAD kein Programm vorliegt, geht das Programm nach l16 weiter.
In einem Schritt l12 wird die erhaltene Programmzeile ZEILE′ mit ZEILE verglichen, und wenn ZEILE größer ist als ZEILE′, weil das Sprungziel weiter zurückliegt, kehrt das Programm zum Schritt l11 zurück. Wenn ZEILE nicht größer ist als ZEILE′, geht das Programm zum Schritt l13 weiter.
Im Schritt l13 wird die Entscheidung getroffen, ob ZEILE und ZEILE′ gleich sind. Wenn sie gleich sind, ist diese Programmzeile das Sprungziel, und um diese Anweisung auszuführen, geht das Programm zum Schritt l7 über. Wenn sie nicht gleich sind, geht das Programm zum Schritt l16 über, da dann kein Sprungziel vorliegt.
In einem Schritt l14 geht der Start des Programms in umgekehrter Richtung zur angegebenen Position von PAD, wenn im Schritt l10 festgestellt wird, daß ZEILE nicht größer ist als ZEILE′ weil das Sprungziel vor der ausgeführten einschließlich der gerade ausgeführten Zeile liegt. Es wird eine Suche nach der Zeilennummer der nächsten Programmzeile durchgeführt, und wenn sie in die Position ZEILE gelangt, wird diese Position zur gleichen Zeit PAD. Wenn die Programmzeile nicht in Startrichtung von PAD aus liegt, geht das Programm zum Schritt l16 über.
In einem Schritt l15 werden ZEILE und ZEILE′ miteinander verglichen, und wenn ZEILE kleiner ist als ZEILE′, kehrt das Programm zum Schritt l14 zurück, da dann das Sprungziel weiter vorne liegt. Wenn ZEILE nicht kleiner ist als ZEILE′, geht das Programm zum Schritt l13 über.
Im folgenden wird die Methode der Ausführung eines Programms dargelegt. Fig. 8 ist ein Flußdiagramm einer RUN- Anweisung zum Ausführen eines Programms. In einem Schritt m1 wird der Inhalt von PAD gelöscht, und in einem Schritt m2 werden die Inhalte von PAD und OBTM verglichen, um eine Entscheidung zu treffen, ob das Programm im Rechner gespeichert ist oder nicht. Wenn die Inhalte gleich sind, bedeutet dies, daß das Programm nicht gespeichert ist, so daß das Programm direkt zum Schritt m3 übergeht, um dort die nächste Anweisung zu erwarten. In einem Schritt m4 beginnt die Ausführung vom Beginn des Programms an auf eine ENTER-Anweisung hin, wenn nach der RUN-Anweisung keine vorgegebene Startzeile vorhanden ist. Daher wird nach der RUN-Anweisung die Entscheidung getroffen, ob eine ENTER-Anweisung vorhanden ist oder nicht. Wenn die ENTER-Anweisung vorhanden ist, geht das Programm zum Schritt m9 über.
In einem Schritt m5 wird, wenn die ENTER-Anweisung nicht vorhanden ist, die Entscheidung getroffen, ob eine vorgegebene Startmarke vorhanden ist oder nicht.
In einem Schritt m6 wird eine gegebenenfalls vorhandene MARKE überführt.
In einem Schritt m7 wird von der angegebenen PAD-Information aus in Richtung auf OBTM hin eine Suche nach einer Programmzeile durchgeführt, die diese Marke aufweist, und falls sie gefunden wird, wird diese Marke in das Register MARKE′ überführt und diese Position nach PAD überführt. Wenn sie nicht gefunden wird, da kein Sprungziel vorhanden ist, geht das Programm zum Schritt m15 über. In einem Schritt m8 wird der erhaltene Wert MARKE′ mit MARKE verglichen und falls diese einander gleich sind geht das Programm zu einem Schritt m9 über, so daß die Ausführung des Programms ab der markierten Zeile erfolgen. Wenn MARKE′ und MARKE nicht gleich sind, kehrt das Programm zum Schritt m7 zurück, um die nächste Marke zu finden.
In einem Schritt m10 wird, wenn in dem Schritt m5 sichergestellt worden ist, keine vorgegebene Startmarke vorhanden ist, die Entscheidung getroffen, ob eine vorbestimmte Startzeilennummer vorhanden ist oder nicht. Wenn keine Zeilennummer vorhanden, geht das Programm zum Schritt m15 über. In einem Schritt m11 wird die vorgegebene Zeilennummer in ZEILE überführt.
In einem Schritt m12 wird von der angegebenen PAD-Position aus eine Suche in Richtung auf OBTM hin durchgeführt, und die Zeilennummer der nächsten aufgefundenen Programmzeile wird in das Register MARKE′ überführt, und diese Position wird nach PAD überführt. Wenn die Programmzeilennummer nicht in der Position PAD oder dahinter aufgefunden wird, weil kein Sprungziel vorhanden ist, geht das Programm zum Schritt m15 über.
In einem Schritt m13 wird ZEILE mit ZEILE′ verglichen, und wenn ZEILE größer ist als ZEILE′, weil die Programmausführungsanfangszeile weiter zurückliegt, kehrt das Programm zum Schritt m12 zurück.
In einem Schritt m14 wird die Entscheidung getroffen, ob die Inhalte von ZEILE und ZEILE′ gleich sind, und wenn sie einander gleich sind, geht das Programm zum Schritt m9 über, um die Ausführung von der vorgegebenen Zeile aus zu starten. Wenn die Inhalte nicht gleich sind, geht das Programm zum Schritt m15 über, da keine vorbestimmte Zeile vorhanden ist.
Wenn somit mehrere Programme im Rechner vorhanden sind, ist es auf diese Art und Weise durch markieren der Programmzeilen möglich, die Ausführung eines Programms von einer gewünschten Zeile aus zu beginnen. Durch Bestimmen einer Zeilennummer wird die Ausführung eines Programms von einer Zeile innerhalb des allerersten Programms mit der selben Zeilennummer begonnen.
In Fig. 9 ist ein Flußdiagramm der Ausführung einer Anweisung zum Auflisten des Inhalts eines Programms dargestellt. Die Auflistausgabe ist mit solchen Begriffen wie <AUFLISTEN<, <Zeilennummer AUFLISTEN< und <Marke AUFLISTEN< bestimmt. Diese Bezeichnungen sind die selben wie die Programmausführungsbezeichnungen, und der Suchablauf für den Startort ist der derselbe wie der gemäß dem Flußdiagramm von Fig. 8, so daß entsprechende Schritte dieselben Bezeichnungen tragen wie im Flußdiagramm von Fig. 8.
In einem Schritt m16 wird nach dem Auffinden der Startzeile eine Entscheidung getroffen, ob dieser Programmbereich in den Programmbereich des RAM 12 oder in dem Programmbereich des ROM 61 enthalten ist. Diese Entscheidung wird aufgrund der Programmstartadressen der Speicher gemäß der Adreßtabelle von Fig. 5 getroffen. Wenn sich der Programmbereich innerhalb des Programmbereichs des RAM 12 befindet, geht das Programm zu einem Schritt m18 über.
In einem Schritt m17 wird in bezug auf den Code SC eine Entscheidung getroffen, ob vertrauliche Programme in dem Programmbereich des ROM 61 sind oder nicht. Wenn vertrauliche Programme vorhanden sind, geht das Programm zum Schritt m3 weiter. Es erfolgt dann also keine Auflistung. Wenn keine vertraulichen Programme vorhanden sind, geht das Programm zum Schritt m18 weiter.
Im Schritt m18 wird der Inhalt einer Zeile übersetzt und aufgelistet.
In einem Schritt m19 geht das Programm zur nächsten Zeile über, wenn der Inhalt der einen Zeile vollständig aufgelistet ist.
In einem Schritt m20 kehrt das Programm zum Schritt m18 zurück, wenn alle Zeilen vollständig aufgelistet sind. Wenn die Auflistung insgesamt abgeschlossen ist, geht das Programm zum Schritt m3 weiter.
Im Flußdiagramm der Fig. 10 ist eine Anweisung zum Anzeigen des Status jedes eingegebenen Programms dargestellt. Die Anweisung wird auf die Anweisung <ENTER-STATUSWERT< durch eine Taste oder durch Einfügen der Zeile <VARIABLE = STATUSWERT< in das Programm durchgeführt. In einem Schritt n1 wird eine Entscheidung getroffen, ob der Wert 0 vorliegt oder nicht. Wenn der Wert 0 vorliegt, geht das Programm zu einem Schritt n2 weiter.
Im Schritt n2 wird der Wert von P4-P6, d. h., die Zahl von Bytes, die in den Programmen des RAM 12 verbleiben, übertragen und das Programm geht zu einem Schritt n3 über. In einem Schritt n4 wird die Entscheidung getroffen, ob der Wert, wenn er nicht 0 ist, 1 ist oder nicht. Wenn er 1 ist geht das Programm zu einem Schritt n5 weiter.
Im Schritt n5 wird der Wert von P6-P3, d. h. die Zahl von Bytes in den Programmen des RAM 12 übertragen, und das Programm geht zum Schritt n3 weiter.
In einem Schritt n6 wird eine Entscheidung getroffen, ob der Wert, wenn er nicht 1 ist, 2 ist. Wenn er 2 ist, geht das Programm zu einem Schritt n7 über. Im Schritt n7 wird der Wert von P6 + 1, d. h. die Adresse des Wertes der letzten Adresse des Programms im RAM 12 übertragen, und das Programm geht zum Schritt n3 weiter. In einem Schritt n8 wird eine Entscheidung getroffen, ob der Wert, wenn er nicht 2 ist, 3 ist. Wenn er 3 ist, geht das Programm zu einem Schritt n9 weiter.
Im Schritt n9 wird der Wert von Dp-1, d. h. die direkt vor der letzten Adresse im Datenbereich stehende Adresse übertragen, und das Programm geht zu Schritt n3 weiter. In einem Schritt n10 wird LP, d. h. die Zeilenzahl der gerade ausgeführten Zeile übertragen, wenn der Wert nicht 3, d. h. größer als 3 ist. Das Programm geht dann zum Schritt n3 weiter.

Claims (3)

1. Kleinrechner mit einer Eingabetastatur (3), einer Anzeigeneinheit (2), einer Anzeigeansteuerschaltung (7) mit einem Anzeigespeicher (22), einem Prozessor (8), einem Hauptspeicher (12, 13), einem Datenbus (9), einem Adreßbus (10), einem Steuerbus (11), einem Ein-/Ausgabepuffer (14), einem ersten Verbinder (15), einem zweiten Verbinder (16) sowie mit einer Taktschaltung (17), dadurch gekennzeichnet, daß der Rechner so ausgebildet ist, daß die in einem ansteckbaren ROM (61) gespeicherten Programme bzw. Programmteile ohne Umladung in den Hauptspeicher direkt ausführbar sind.
2. Kleinrechner nach Anspruch 1, dadurch gekennzeichnet, daß das ROM (61) ein über den ersten Verbinder (15) an den Rechner anschließbares erweitertes ROM hoher Speicherkapazität ist und daß die in einem RAM (12) und in dem ROM (61) gespeicherten Programme während ihrer Ausführung miteinander verknüpfbar sind.
3. Kleinrechner nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß
  • - in einem ersten ROM (13) das Steuerprogramm des Rechners gespeichert ist,
  • - in einem zweiten ROM (61) zur Identifizierung und zum Aufruf von Programmen folgende Bereiche definiert sind:
    • - ein Bereich IC, in dem ein Identifizierungscode aufgezeichnet ist, der angibt, daß es sich um ein erweiterbares ROM handelt,
    • - ein Bereich BA, in dem die Anfangsadresse der im ROM (61) gespeicherten Programme aufgezeichnet ist,
    • - ein Bereich SC, in dem ein Unterscheidungscode abgelegt ist zum Bestimmen, ob der Inhalt eines Programms geheim ist und daß
  • - im RAM (12) zumindest ein Bereich S mit einem Identifizierungscode definiert ist, der anzeigt, daß es sich um ein RAM handelt.
DE19823243502 1981-11-24 1982-11-24 Privatrechner Granted DE3243502A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56189002A JPS5890261A (ja) 1981-11-24 1981-11-24 電子式計算機

Publications (2)

Publication Number Publication Date
DE3243502A1 DE3243502A1 (de) 1983-06-01
DE3243502C2 true DE3243502C2 (de) 1991-07-11

Family

ID=16233648

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823243502 Granted DE3243502A1 (de) 1981-11-24 1982-11-24 Privatrechner

Country Status (3)

Country Link
US (1) US4636970A (de)
JP (1) JPS5890261A (de)
DE (1) DE3243502A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4881189A (en) * 1983-10-24 1989-11-14 Proctor Don R Computer analytical program process
JPS60193066A (ja) * 1984-03-13 1985-10-01 Sharp Corp 電子式計算機
JPS60247766A (ja) * 1984-05-22 1985-12-07 Sharp Corp プログラム計算機
GB8420063D0 (en) * 1984-08-07 1984-09-12 Kontron Holding Ag Modular apparatus
US4843590A (en) * 1986-05-29 1989-06-27 Hewlett-Packard Company History stack
JPH0537314Y2 (de) * 1986-08-30 1993-09-21
US5203001A (en) * 1987-04-27 1993-04-13 Sharp Kabushiki Kaisha Portable computer having an updatable table of starting addresses for accessing those stored programs having been previously executed
JPS63269248A (ja) * 1987-04-27 1988-11-07 Sharp Corp 小型電子計算機
JP2635601B2 (ja) * 1987-07-28 1997-07-30 株式会社東芝 携帯可能電子装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3720820A (en) * 1971-03-18 1973-03-13 Tektranex Inc Calculator with a hierarchy control system
US4377852A (en) * 1980-03-31 1983-03-22 Texas Instruments Incorporated Terminal emulator

Also Published As

Publication number Publication date
US4636970A (en) 1987-01-13
DE3243502A1 (de) 1983-06-01
JPS5890261A (ja) 1983-05-28

Similar Documents

Publication Publication Date Title
DE3346816C2 (de)
DE3431255C2 (de)
DE4334524C2 (de) Dokumentverarbeitungsvorrichtung
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE3607889A1 (de) Verfahren zum steuern von unterbrechungen in einem virtuellen maschinensystem und virtuelles maschinensystem zur durchfuehrung des verfahrens
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE3242627A1 (de) Programmierbarer elektronischer rechner mit einer anzeigeeinrichtung
DE3243502C2 (de)
DE2801543A1 (de) Datenverarbeitungsanlage
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3314976C2 (de)
DE2801610A1 (de) Verfahren zum definieren von anfangswerten fuer die textverarbeitung
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE3441640A1 (de) Streifenfeldspeichercontroller
DE69823302T2 (de) Verfahren und Vorrichtung zum Verschieben von Daten
DE3347644A1 (de) Grafikanzeigeeinrichtung
DE2264769C3 (de) Anzeigevorrichtung
DE3910340A1 (de) Vorrichtung und verfahren zur umsetzung einer gruppe von attributen von anzeigedaten in einen code
DE3121046C2 (de)
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE60125854T2 (de) Abnehmbare elektronische Vorrichtung zur Erhöhung der Funktionalität eines Hauptprozessors und Steuerungsverfahren dazu
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE2658950A1 (de) Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben
DE3025167C2 (de) Datenverarbeitungseinrichtung
DE3241393C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: PATENTANWAELTE MUELLER & HOFFMANN, 81667 MUENCHEN