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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program 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.
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)
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)
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 |
-
1981
- 1981-11-24 JP JP56189002A patent/JPS5890261A/ja active Pending
-
1982
- 1982-11-24 DE DE19823243502 patent/DE3243502A1/de active Granted
-
1985
- 1985-10-07 US US06/783,819 patent/US4636970A/en not_active Expired - Lifetime
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 |