DE3321131A1 - SELF-LEARNING CALCULATOR - Google Patents
SELF-LEARNING CALCULATORInfo
- Publication number
- DE3321131A1 DE3321131A1 DE19833321131 DE3321131A DE3321131A1 DE 3321131 A1 DE3321131 A1 DE 3321131A1 DE 19833321131 DE19833321131 DE 19833321131 DE 3321131 A DE3321131 A DE 3321131A DE 3321131 A1 DE3321131 A1 DE 3321131A1
- Authority
- DE
- Germany
- Prior art keywords
- file
- ics
- processor
- interrupt
- program
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Es wird ein Rechner und ein System zur Integration von Software mit Hardware offenbart, das als "Integrations-Control-System - ICS" bezeichnet wird. Hierbei handelt es sich um ein automatisches Verfahren zum Formatisieren eines maschinenunabhängigen Programmschreibens in einer hochentwickelten Programmsprache, um einem Prozessor ein System zu geben, ohne daß eine genaue Kenntnis des Assemblers, der Linker-Erfordernisse oder der Sprach-Interface-Erfordernisse nötig ist. ICS gibt hierbei die Minimalerfordernisse selbst vor. Das ICS-System läßt sich in einem besonderen Speicher, zugreifbar für jede beliebige Computer-Konfiguration, ablegen. Hieraus wird automatisch der Ablauf des Integrationssystems aufgebaut. Durch Verwendung hochentwickelter Weisungen ist das Entwicklungssystem wesentlich schneller und kontrolliert sich selbst auf Fehler. Selbst Fehler, die sich sonst erst im Betrieb bemerkbar machen, werden ausgeschaltet. Es entsteht ein sofort exekutierbares Modul, das in herkömmlicher Weise abgelegt, beispielsweise in PROM, eingebrannt werden kann.A computer and a system for integrating software with hardware, which is referred to as an "integration control system - ICS" are disclosed. This is an automatic method of formatting machine-independent program writing in a sophisticated programming language in order to give a processor a system without the need for precise knowledge of the assembler, the linker requirements or the language interface requirements. ICS specifies the minimum requirements itself. The ICS system can be stored in a special memory that can be accessed by any computer configuration. The process of the integration system is automatically built from this. By using highly developed directives, the development system is much faster and checks itself for errors. Even errors that otherwise only become noticeable during operation are eliminated. The result is an immediately executable module that can be stored in a conventional manner, for example in PROM.
Description
Die vorliegende Erfindung bezieht sich auf einen Digitalrechner, in denen sich der Funktionsablauf entsprechend einer Datei, die von der Maschine selbst während des Ablaufs gewonnen wird, ändert und auf ein Verfahren, die von Schnittstellen zwischen Software und Hardware verfügbar macht. Insbesondere bezieht sich die Erfindung auf ein System zum sofortigen Überführen von Hardware/Software-Schnittstellen-Spezifikationen in einen spezifischen für den Mikroprozessor durchführbaren Code und in Befehle für das Linker/Ladesystem einer ausgewählten Zusammenstellung von Hardware.The present invention relates to a digital computer in which the functional sequence changes in accordance with a file which is obtained by the machine itself during the sequence, and to a method which makes interfaces between software and hardware available. More particularly, the invention relates to a system for translating hardware / software interface specifications immediately into specific microprocessor executable code and into instructions for the linker / loader system of a selected set of hardware.
Zu Computern zusammengesetzte und für eine beliebige Benutzung verfügbar gemachte Geräte bestehen im wesentlichen aus mechanischen und elektrischen, d.h. schaltungstechnischen Komponenten, die mit dem in diesen Hardwarekomponenten eingegeben oder eingespeicherten Programmkomponenten zusammenwirken. Die Aufgabe, für den Hardware-Anteil und den Softwareanteil geeignete und passende Verknüpfungen vorzusehen, war schon immer ein sehr schwieriges und zeitraubend zu lösendes Problem. Das System der vorliegenden Erfindung macht es dem Entwickler eines aus bestimmten Hardwareteilen zusammengesetzten Computergerätes möglich, eine Schnittstelle zwischen Hardware und Software in einer hochentwickelten Sprache in einer zusammenwirkenden Weise zu spezifizieren. Dieses System überführt dann diese Spezifizierungen in einen vom Computergerät verarbeitbaren Code, der so akzeptiert wird, wie andere Befehle von einem Programm-Linking-Ladesystem ebenfalls aufgenommen werden. Auf diese Weise kann ein Entwicklungsprozeß, der sonst bis zu mehreren Tagen oder gar Wochen dauern würde, auf Minuten reduziert werden.Devices assembled into computers and made available for any use essentially consist of mechanical and electrical, i.e. circuit components, which interact with the program components entered or stored in these hardware components. The task of providing suitable and suitable links for the hardware component and the software component has always been a very difficult and time-consuming problem to be solved. The system of the present invention enables the designer of a computer device composed of certain pieces of hardware to specify an interface between hardware and software in a sophisticated language in a cooperative manner. This system then translates these specifications into a code that can be processed by the computing device and is accepted as other commands from a program linking loader system can also be included. In this way, a development process that would otherwise take several days or even weeks can be reduced to minutes.
Bei Verwendung einer hochentwickelten Sprache, wie beispielsweise PASCAL, ist das System von der eigentlichen Art der Maschinensprache oder der aufgesetzten Interpreter unabhängig. Auf PASCAL basierende Programme brauchen im wesentlichen nicht verändert zu werden, ungeachtet des Verfahrens oder der Maschinenkonfiguration, auf welcher sie benutzt werden. Jedoch gibt es mit dem herkömmlichen PASCAL keinen direkten Weg zur Spezifizierung von zubehörabhängigen Anforderungen wie beispielsweise Unterbrechungsvektoren, Wiederanlaufroutinen oder der Speicherkonfiguration.If a highly developed language, such as PASCAL, is used, the system is independent of the actual type of machine language or the interpreter used. Programs based on PASCAL essentially do not need to be changed, regardless of the method or the machine configuration on which they are used. However, with the conventional PASCAL there is no direct way to specify accessory-dependent requirements such as interrupt vectors, restart routines or the memory configuration.
Es könnte eine breit angelegte Maschinensprache oder eine Assemblerroutine entwickelt werden, um das PASCAL-Programm mit der Prototyp-Hardware zu verbinden und eine Linker-Befehlsdatei, um die Speicherkonfiguration zu spezifizieren. Hierfür wäre es nötig, sehr detailliert auf die Eigentümlichkeiten des spezifischen Assemblers, den Linker und die PASCAL-Schnittstellen-Erfordernisse einzugehen. Die Erfahrung zeigt, daß dieser Weg einer Anpassung sehr zeitraubend ist und da so viele Einzelschritte dicht an der Maschinensprache, d.h. auf niedrigem Niveau vollzogen werden müssen, sind auf dem Weg Fehler unvermeidlich und es entsteht wiederum nur eine Einzellösung. Nach dem Stand der Technik gibt es keine Systeme, die die Linker-Befehle und die die konfigurationsabhängigen Befehlsdateien automatisch erzeugen.Large-scale machine language or assembly language routine could be developed to link the PASCAL program to the prototype hardware and a linker instruction file to specify the memory configuration. For this it would be necessary to go into great detail about the peculiarities of the specific assembler, the linker and the PASCAL interface requirements. Experience shows that this way of adaptation is very time-consuming and since so many individual steps have to be carried out close to the machine language, i.e. at a low level, errors are inevitable on the way and again only a single solution is created. In the prior art, there are no systems that automatically generate the linker commands and the configuration-dependent command files.
Es wäre wünschenswert, über ein System verfügen zu können, das für die Konfiguration eines Programms auf einen Prototyp eine Liste aller zu spezifizierenden Schritte bereithält - vom Namen des übersetzten Zielprogramms bis zu der Adresse, wo das Programm mit der Durchführung beginnt, und das dann, basierend auf den Antworten die Konfigurations-Ziel-Datei erzeugt und Linker-Befehle, die für die Konfiguration des Prototyps benötigt werden.It would be desirable to be able to have a system available that would keep a list of all the steps to be specified for configuring a program on a prototype - from the name of the translated target program to the address where the program begins to execute, and then Based on the responses, the configuration target file is generated and linker commands required for the configuration of the prototype.
Wenn in einem solchen System die zu vollziehenden Schritte von einer hochentwickelten Sprache gesteuert ablaufen würden, könnte der Prototyp schneller und mit weniger Fehlern beschrieben werden, außerdem könnten durch das System selbst die Gültigkeit der gemachten Angaben sofort überprüft werden und so Fehler vermieden werden, die sonst erst später festgestellt werden könnten. Die vorliegende Erfindung steht unter der Aufgabe, ein solches Entwicklungssystem in Verbindung mit einer bestimmten Hardware verfügbar zu machen. Die Lösung geht im wesentlichen aus den vorangestellten Ansprüchen hervor.If the steps to be carried out in such a system were controlled by a highly developed language, the prototype could be described faster and with fewer errors, and the system itself could immediately check the validity of the information provided and thus avoid errors that would otherwise could only be determined later. The object of the present invention is to make such a development system available in connection with specific hardware. The solution essentially emerges from the preceding claims.
In Übereinstimmung mit der zeichnerisch dargestellten Ausführungsform befreit das hier offenbarte Integrations-Controll-System (ICS) den Entwickler von zu Computern zusammengesetzten Geräten und Einzelheiten sowohl davon, hunderte bis tausende Schritte in dem computereigenen Code zu entwerfen und danach fehlerfrei zu machen und/oder optimieren zu müssen als auch davon, sich mit immer komplizierter werdenden Linker- und/oder Ladesystemen, die Dutzende von speziellen Befehlen in einer speziellen Linker-Befehl-Sprache erfordern, vertraut zu machen.In accordance with the embodiment shown in the drawing, the integration control system (ICS) disclosed here frees the developer of computer-assembled devices and details from designing hundreds to thousands of steps in the computer's own code and then making it error-free and / or optimizing it as well as becoming familiar with increasingly complex linker and / or loader systems that require dozens of special commands in a special linker-command language.
Die vorliegende Erfindung macht ein Verfahren und ein System verfügbar, womit ein Programm mit einer Sprache von hohem Niveau mit den Hardware-Grenzen eines ausgewähltenThe present invention provides a method and system which allows a program of a high level language with the hardware limitations of a selected one
Prototyp-Prozessors integriert werden kann. Dies wird durch Zusammenwirken von dem Entwickler automatisch bewerkstelligt, um eine Quellendatei zu erhalten, welche alles an Software, Hardware und Unterbrecher-Konfigurations-Spezifikationen für einen ausgewählten Prototyp-Prozessor umfaßt. Das System enthält auch die Verarbeitung der zuvor erzeugten Quellendatei zur Erzeugung einer Linker-Befehl-Datei und einer Konfigurations-Ziel-Datei.Prototype processor can be integrated. This is done automatically through the collaboration of the developer to obtain a source file which includes all of the software, hardware and breaker configuration specifications for a selected prototype processor. The system also includes processing the previously created source file to create a linker command file and a configuration target file.
Die Linker-Befehl-Datei steuert den Verbindungsprozeß des Programms in der hochentwickelten Sprache mit der Konfigurations-Ziel-Datei zur Erzeugung eines vom Prototyp-Prozessor durchführbaren Lademoduls. Wenn es gefordert wird, können während des Verbindens ausgewählte Routinen aus dem Laufzeit-Befehls-Vorrat ("run-time" library) der hochentwickelten Sprache ebenfalls eingeschlossen werden.The linker command file controls the process of linking the program in the sophisticated language with the configuration target file to generate a load module that can be executed by the prototype processor. If required, selected routines from the run-time library of the advanced language can also be included during linking.
Das Zusammenwirken mit dem Entwickler umfaßt das Reagieren des Entwicklers auf notwendige Eingaben in bezug auf die Software und die Prototyp-Prozessor-Hardware sowie auf Unterbrechnungs-("interrupt")Spezifikationen, und dann wird in Erwiderung dieser Eingaben eine Quellendatei erzeugt.Interaction with the developer includes responding to necessary inputs relating to the software and prototype processor hardware, and "interrupt" specifications, and then generating a source file in response to those inputs.
Die zuvor erwähnte Konfigurations-Ziel-Datei umfaßt Unterbrechervektoren, Unterbrecher-Dienst-Routinen, eine Rückstellroutine und eine Programm-Initialisierungs-Routine für den Prototyp-Prozessor.The aforementioned configuration target file includes interrupt vectors, interrupt service routines, a reset routine and a program initialization routine for the prototype processor.
Weitere Einzelheiten, Merkmale und Vorteile ergeben sich aus der folgenden Beschreibung des in der Zeichnung und den Tabellen wiedergegebenen Ausführungsbeispieles.Further details, features and advantages emerge from the following description of the exemplary embodiment reproduced in the drawing and the tables.
In der Zeichnung zeigen:In the drawing show:
Fig. 1 ein Flußdiagramm des Integrierungs-Steuersystems gemäß der vorliegenden Erfindung undFig. 1 is a flow diagram of the integration control system according to the present invention and
Fig. 2 ein vereinfachtes Blockschaltbild eines mit einer Computerkonfiguration verbundenen Terminals, mit dem die vorliegende Erfindung ausgeführt werden kann.Figure 2 is a simplified block diagram of a terminal connected to a computer configuration with which the present invention can be practiced.
Wenn bei der Erzeugung eines geräteunabhängigen Programms eine hochentwickelte Sprache, wie beispielsweise PASCAL benutzt wird, kann der vom Computer erzeugte Code nicht direkt ausgeführt werden. Die geeigneten Codes im Laufzeit-Befehls-Vorrat müssen mit dem zusammengefaßten ("compiled") Code verbunden ("gelinkt") werden. In Abhängigkeit von den Hardware- und Software-Anforderungen des Prototyp-Prozessor-Systems, muß dieses für das Programm initialisiert werden. Der "Linker" muß eine Anweisung erhalten, wo der erzeugte Code im Speicher des Prototyp-Prozessor-Systems abgespeichert werden soll.If a sophisticated language such as PASCAL is used in creating a device-independent program, the computer-generated code cannot be directly executed. The appropriate codes in the runtime instruction set must be linked to the "compiled" code. Depending on the hardware and software requirements of the prototype processor system, this must be initialized for the program. The "linker" must receive an instruction where the generated code is to be stored in the memory of the prototype processor system.
Das Software/Hardware-Integrations-Steuersystem der vorliegenden Erfindung funktioniert im allgemeinen gemäß dem in Fig. 1 dargestellten Flußdiagramm. Ein Block 2 symbolisiert die durch den Entwerfer interaktiv benutzte Spezifikationen der Hardware, der Software und der Unterbrechungskonfigurationen ("interrupt") des Prototyps in Erwiderung auf Anstöße des Prompters oder Editors gemäß Block 4. Diese Spezifikationen werden dann vom Prompter 4 zur Erzeugung der Integrations-Quellen-Datei aus Block 6 verwendet. Die Quellendatei von Block 6 wird vom Prozessor, Block 8, verarbeitet und erzeugt die Linker-Steuer-Datei, Block 12 und die Konfigurations-Ziel-Datei, Block 10.The software / hardware integration control system of the present invention operates generally in accordance with the flow chart illustrated in FIG. A block 2 symbolizes the specifications of the hardware, the software and the interrupt configuration ("interrupt") of the prototype used interactively by the designer in response to the prompts of the prompter or editor according to block 4. These specifications are then used by the prompter 4 to generate the integration Sources file from block 6 used. The source file from block 6 is processed by the processor, block 8, and generates the linker control file, block 12 and the configuration target file, block 10.
Die PASCAL-Ziel-Datei gemäß Block 14, die mit dem Prototyp-Prozessor-System zulaufende Software, zusammen mit dem PASCAL-Laufzeit-Unterstützungs-Befehlsvorrat gemäß Block 16, die Konfigurations-Ziel-Datei, Block 10 und der Linker-Steuer-Datei, Block 14 sind mit einem Linker 18 verbunden. Im Linker 18 ist die Konfigurations-Ziel-Datei mit den PASCAL-Ziel-Dateien und dem Laufzeit-Unterstützungs-Befehlsvorrat verbunden. Unter der Steuerung durch die Linker-Steuerungs-Datei erzeugt der Linker 18 eine Lade-Datei, Block 20, welche vom Prototyp-Prozessor-System, das in Erwiderung auf den Prompter 4 spezifiziert wird, ausgeführt werden kann.The PASCAL target file according to block 14, the software running with the prototype processor system, together with the PASCAL runtime support instruction set according to block 16, the configuration target file, block 10 and the linker control File, block 14 are connected to a linker 18. In the linker 18, the configuration target file is linked to the PASCAL target files and the runtime support instruction set. Under the control of the linker control file, the linker 18 creates a load file, block 20, which can be executed by the prototype processor system specified in response to the prompt 4.
Die Konfigurations-Ziel-Datei, Block 10 enthält Unterbrecher-Vektoren, Unterbrecher-Service-Routinen, eine Rückstellroutine und Programm-Initialisierungs-Routine für das spezifizierte Prototyp-Prozessor-System. Die Linker-Steuerungs-Datei, Block 12, die für das besondere Prototyp-Prozessor-System erzeugt wurde, verbindet den PASCAL-Ziel-Code, Block 14, die Konfigurations-Ziel-Datei, Block 10 und den geeigneten Laufzeit-Unterstützungs-Befehlsvorrat miteinander. Die Linker-Steuerungs-Datei, Block 12 ordnet auch den Ziel-Code entsprechend Speicher-Layout des Prototyp-Prozessor-Systems wie er in Erwiderung auf den Prompter 4 spezifiziert wird.The configuration target file, block 10 contains interrupt vectors, interrupt service routines, a reset routine and program initialization routine for the specified prototype processor system. The linker control file, block 12, created for the particular prototype processor system links the PASCAL target code, block 14, the configuration target file, block 10, and the appropriate run-time support instruction set together. The linker control file, block 12, also maps the target code according to the memory layout of the prototype processor system as specified in response to the prompt 4.
Damit das ICS funktionieren kann, müssen die Grundwerte von verschiedenen Prototyp-Prozessor-Systemen als Arbeitsparameter enthalten sein. Diese Parameter enthalten solche Informationen wie beispielsweise die maximale Speichergröße und Konfigurationen, Unterbrecherverfahren usw. Bei der nachfolgenden Beschreibung werden Beispiele eines ICS-Systems abgehandelt, welche Schnittstellen bei einem PASCAL-Sprachen-Programm mit jedem der folgenden Mikroprozessoren bilden können: 8086, 8086/8087, 8088 und 8088/8087.In order for the ICS to function, the basic values of various prototype processor systems must be included as working parameters. These parameters contain such information as for example the maximum memory size and configurations, interrupt procedure etc. In the following description examples of an ICS system are dealt with, which can interface with a PASCAL language program with any of the following microprocessors: 8086, 8086/8087 , 8088 and 8088/8087.
Bevor der vom Computer erzeugte PASCAL-Ziel-Code, Block 14, ausgeführt werden kann, muß er durch einen vom ICS erzeugten Konfigurations-Ziel-Code, Block 10, ergänzt werden. Wenn dem Entwerfer die Einzelheiten des Prototyp-Prozessor-Systems bereits bekannt sind, kann er sogar bevor er mit dem Programmieren in PASCAL beginnt, eine ICS-Integrations-Quellen-Datei, Block 6, erzeugen und verarbeiten. Tatsächlich verschafft die ICS-Integrations-Quellen-Datei eine knappe, von Menschen lesbare Beschreibung der Hardware/Software-Schnittstelle und diese kann sogleich als Programmierdokument benutzt werden.Before the PASCAL target code, block 14, generated by the computer can be executed, it must be supplemented by a configuration target code, block 10, generated by the ICS. If the designer already knows the details of the prototype processor system, he can generate and process an ICS integration source file, block 6, even before he begins programming in PASCAL. In fact, the ICS integration source file provides a concise, human-readable description of the hardware / software interface and this can be used immediately as a programming document.
Es ist jedoch wahrscheinlich, daß die Software parallellaufend mit der Hardware entwickelt werden wird und daß Teile des Programms vor der Entwicklung des ganzen Programms getestet werden. Bei den Testversuchen an den Programmteilen im Emulationsmodus können die Standard-ICS-Konfigurations-Ziel-Datei und die Linker-Steuer-Datei benutzt werden. Wenn dem Programm Unterbrecher-Verarbeitungsroutinen hinzugefügt werden und es zu dem Prototyp-Prozessor-System zugeführt wird, erzeugt sich eine ICS-Integrations-Quellen-Datei, Block 6 und/oder sie wird so abgeändert, daß sie auf die wechselnde Umgebung des Programms paßt.It is likely, however, that the software will be developed in parallel with the hardware and that portions of the program will be tested prior to the development of the whole program. The standard ICS configuration target file and the linker control file can be used for tests on the program parts in emulation mode. When interrupt handlers are added to the program and fed to the prototype processor system, an ICS integration source file is created, block 6, and / or it is modified to suit the changing environment of the program .
Wenn das ICS-System eingeleitet ist, fragt der Prompter 4 beim Benutzer die Information über die Konfiguration des Prototyp-Prozessor-Systems ab. In der folgenden Tabelle 1 ist eine typische Zusammenstellung von Promptern, Benutzerantworten und einem Kommentarfeld dargestellt, die eine typische Integrations-Quellen-Datei gemäß Block 6 bildet.When the ICS system has been initiated, the prompter 4 asks the user for information about the configuration of the prototype processor system. The following table 1 shows a typical compilation of prompts, user responses and a comment field that forms a typical integration source file according to block 6.
Tabelle 1Table 1
Der ICS-Prompter gemäß Block 4 ist ein interaktives Programm, das die Integrations-Quellen-Datei erzeugt. Der Prompter 4 fragt die Information über das Prototyp-Prozessor-System, Ziel-Dateien und Unterbrecher-Konfiguration ab und baut die Datei gemäß den Antworten auf.The ICS prompter according to block 4 is an interactive program which generates the integration source file. The prompter 4 queries the information about the prototype processor system, target files and interrupt configuration and builds the file according to the responses.
Wenn das ICS-System angesprochen wird, schaltet sich der Prozessor 4 von selbst ein und läßt auf dem Display ein Menu von Möglichkeiten zur Auswahl erscheinen. Im "Frage-Modus" beginnt der Prompter 4 mit der Fragestellung und dem Aufbau der Integrations-Quellen-Datei. Unmittelbar nachdem die ICS angesprochen worden ist, erzeugt der Prozessor 4 zuerst eine Fehler-Integrations-Quellen-Datei wie sie in der nachstehenden Tabelle 3 dargestellt ist und modifiziert sie danach gemäß den Spezifikationen des Entwerfers.When the ICS system is addressed, the processor 4 switches itself on and shows a menu of options for selection on the display. In the "question mode", the prompter 4 begins with the question and the structure of the integration source file. Immediately after the ICS has been addressed, the processor 4 first generates an error integration source file as shown in Table 3 below and then modifies it according to the specifications of the designer.
Wie zuvor beschrieben wurde, dient die Integrations-Quellen-Datei auf den Prozessor 8 zur Erzeugung der Linker-Befehls-Datei, Block 12, und der Konfigurations-Ziel-Datei, Block 10. Die Tabelle 2 ist eine typische Linker-Befehls-Datei, wie sie von der Integrations-Quellen-Datei aus Tabelle 1As previously described, the integration source file is used on processor 8 to generate the linker command file, block 12, and the configuration target file, block 10. Table 2 is a typical linker command file as shown in the integration source file from Table 1
erzeugt werden würde.would be generated.
Tabelle 2Table 2
Tabelle 3Table 3
Wenn der ICS-Prozessor 8 mit dem Lesen der Integrations-Quellen-Datei gemäß Block 8 fertig ist, spricht er den Assembler des residierenden Computers an, damit dieser die Konfiguration gemäß Block 10 erzeugt. Das Auflisten der Integrations-Quellen-Datei gemäß Block 6 wird automatisch beendet, nachdem der Assembler fertig ist.When the ICS processor 8 has finished reading the integration source file in accordance with block 8, it addresses the assembler of the resident computer so that it generates the configuration in accordance with block 10. The listing of the integration source file according to block 6 is automatically terminated after the assembler has finished.
Wenn der ICS-Prozessor 8 irgendwelche Fehler in der ICS-Integrations-Quellen-Datei findet, erzeugt er keine Linker-Befehls-Datei oder Konfigurations-Datei und die Auflistung zeigt nur die ICS-Anweisungen und die damit verbundenen Fehleranzeigen.If the ICS processor 8 finds any errors in the ICS integration source file, it does not generate a linker instruction file or configuration file and the listing only shows the ICS instructions and the associated error indications.
Der ICS-Konfigurations-Code gemäß Block 10 führt die folgenden Aufgaben aus:The ICS configuration code according to block 10 performs the following tasks:
- er baut Unterbrecher-Vektoren auf;- it builds up breaker vectors;
- er baut Unterbrecher-Service-Routinen auf;- it builds interrupt service routines;
- er baut eine Rückstell-Routine auf und- he builds a reset routine and
- er baut Programm-Initialisierungs-Routinen auf.- it builds up program initialization routines.
Die ICS erzeugt zwei Codetypen zur Durchführung dieser Aufgaben:The ICS generates two types of code to perform these tasks:
- Unterbrecher-Handhabungs-Code - Unterbrecher-Vektoren und die Register-Sicherungs/Wiederinstandsetzungsroutinen, die bei der Unterbrecher-Handhabung verwendet werden können.- Interrupt Handling Code - Interrupt vectors and the register save / restore routines that can be used in interrupt handling.
- Initialisierungs- und Rückstellcode; ein Code, der die Segmentregister (CS, DS, SS, ES), die Ablageadresse, die Mengenadresse ("heap pointer"), das BP-Register, den 8087 und die Gleitkomma-Status-Wort-Variable. Dieser Code kann auch eine COPYVEKTOR-Routine umfassen, die die Unterbrechervektoren vom ROM ins RAM kopiert und ebenfalls einen RESET-Vektor, der den Rückstellcode (eine SMPS-Anweisung) an der Stelle FFFFO erzeugt.- initialization and reset code; a code that contains the segment registers (CS, DS, SS, ES), the storage address, the quantity address ("heap pointer"), the BP register, the 8087 and the floating point status word variable. This code can also comprise a COPYVECTOR routine which copies the interrupt vectors from ROM to RAM and also a RESET vector which generates the reset code (an SMPS instruction) at the point FFFFO.
Der größte Teil des Codes aus einer ICS-Konfigurations-Objekt-Datei kann zur Unterbrechung der Verarbeitung benutzt werden. Es sind insgesamt 256 Unterbrechertypen möglich und jede Type kann eine andere Unterbrechungs-Dienst-Routine haben. Jede Unterbrechungsart kann die Register des 8086 und des 8087 sichern und wieder herstellen. Der tatsächlich von der ICS erzeugte Code hängt von der Wahl jeder Unterbrechungsart in ICS-Integrations-Quellen-Datei ab.Most of the code from an ICS configuration object file can be used to interrupt processing. A total of 256 interrupt types are possible and each type can have a different interrupt service routine. Each type of interrupt can save and restore the 8086 and 8087 registers. The code actually generated by the ICS depends on the choice of each interrupt type in the ICS integration source file.
Es werden gleichzeitig zwei Abschnitte (Sektionen) für den Unterbrechungs-Bedienungs-Code erzeugt; wobei ein Abschnitt die Unterbrecher-Vektoren (ICS.VROM) und ein Abschnitt den Ausführungscode (ICS.INSTR) enthält. (Die "RESUME"-Assembler-Anweisung wirkt als Schalter, indem sie erst eine gewisse Menge des Codes in den einen Abschnitt und dann eine gewisse Menge des Codes in den anderen Abschnitt verweist.)Two sections for the interrupt service code are generated at the same time; one section containing the interrupt vectors (ICS.VROM) and one section containing the execution code (ICS.INSTR). (The "RESUME" assembler statement acts as a switch by first referring a certain amount of the code to one section and then a certain amount of the code to the other section.)
Ein Teil des Codes einer jeden Unterbrechungs-Dienst-Routine ist seiner Bearbeitung gewidmet. Der Assembler-Code zur Bearbeitung einer jeden Unterbrechungsart folgt einem allgemeinen Muster.Some of the code of each interrupt service routine is devoted to its manipulation. The assembly code for handling each type of interrupt follows a general pattern.
Das nachfolgend dargestellte allgemeine Muster stellt einen Teil des ICS-Listings dar. Großbuchstaben-(uppercase)Wörter sind entweder tatsächliche Assembler-Direktiven oder Instruktionen. Gemischtbuchstaben-(lower-case)Wörter sind eine Beschreibung der Funktion des Assembler-Codes und stellen eine oder mehrere Zeilen des Listings dar.The general pattern shown below is part of the ICS listing. Uppercase words are either actual assembly language directives or instructions. Mixed-letter (lower-case) words are a description of the function of the assembler code and represent one or more lines of the listing.
;VEKTOR INTSERVE,m; VECTOR INTSERVE, m
RESUME ICS.INSTRRESUME ICS.INSTR
VEKTOR$ SET $VECTOR $ SET $
Spare einige Register und erhalte RückfolgeSave some registers and get return
Rufe Unterbrechungs-Service-ProgrammCall interruption service program
Regeneriere RegisterRegenerate registers
IRETIRET
RESUME ICS.VROMRESUME ICS.VROM
Erzeuge Unterbrechungs-Vektor im SpeicherCreate interrupt vector in memory
In der ersten Listing-Zeile, ";VEKTOR" ist die ICS-Direktive, welche die Unterbrecher-Dienst-Routine und die mit ihr gehandhabten Type(n) erklärt. INTSERVE stellt die Routine dar, welche die Unterbrecher-Type-Nummer "m" bedient.In the first listing line, "; VECTOR" is the ICS directive which explains the interrupt service routine and the type (s) handled with it. INTSERVE represents the routine which operates the interrupt type number "m".
Die SET-Direktive veranlaßt den VEKTOR$ zur Hinweisadresse ("pointer") zu werden. VEKTOR$ verweist zum Beginn des Unterbrechungs-Handhabungs-Code für diese Unterbrecher-Type.The SET directive causes the VECTOR $ to become the pointer. VECTOR $ refers to the beginning of the interrupt handling code for this interrupt type.
Der "sichere einige Register und Konservierungs-trace-back"-Code erfüllt zwei Funktionen:The "secure some registers and preservation trace-back" code fulfills two functions:
er sichert ausgewählte Register und ermöglichtit secures selected registers and enables
es den Laufzeit-Fehler-Checking-Routinen die Quelle der Laufzeit-Fehler aufzuspüren.the runtime error checking routines to track down the source of the runtime errors.
Der "Aufruf-von-Unterbrecher-Dienst-Routine"-Code ruft die Routine auf, die die Unterbrecher-Type bedient.The "call-to-interrupt-service-routine" code calls the routine that services the interrupt-type.
Der "Wiederherstellen von Registern"-Code stellt die gesicherten Register wieder her (für eine Liste von ICS-Subroutinen, die zum Sichern oder Retten und Wiederherstellen von Registern verwendet werden, wird auf die folgende Tabelle 4 verwiesen).The "Restoring Registers" code restores the saved registers (see Table 4 below for a list of ICS subroutines used to save or save and restore registers).
Die IRET-Anweisung gibt der unterbrochenen Routine die Steuerung zurück.The IRET instruction returns control to the interrupted routine.
Die RESUME ICS.VROM-Direktive veranlaßt, daß irgendwelche Codezeilen, die der Direktive folgen in den ICS.VROM-Abschnitt verwiesen werden.The RESUME ICS.VROM directive causes any lines of code following the directive to be referenced in the ICS.VROM section.
Danach wird ein ("erzeuge Unterbrecher-Vektor im Speicher") Vektor im Speicher erzeugt, der zum Beginn des Unterbrecher-Handhabungs-Codes verweist. Dies wird mit zwei Assembler-Direktiven erreicht (ein Beispiel wird in der "sample ICS Listing" gegeben). Die erste gibt die Stelle an, wo der Unterbrecher-Vektor hin verwiesen werden soll. Der zweite erzeugt den Wert des Unterbrecher-Vektors an dieser Stelle.Thereafter, a ("create interrupt vector in memory") vector is created in memory which points to the beginning of the interrupt handling code. This is achieved with two assembler directives (an example is given in the "sample ICS listing"). The first indicates the place where the break vector should be pointed. The second generates the value of the breaker vector at this point.
Das Sample-ICS-Listing zeigt später in diesem Abschnitt den besonderen Code, der für jede der Unterbrecher-Arten in einer Sample-ICS-Quellen-Datei erzeugt wird.The Sample ICS listing later in this section shows the particular code that is generated for each of the breaker types in a Sample ICS source file.
In der Tabelle 4 sind die Subroutinen aufgelistet, die im ICS-Objekt-Code enthalten sein können.Table 4 lists the subroutines that can be contained in the ICS object code.
Tabelle 4Table 4
Unterbrecher-Arten, die mit der INTERRUPTS_TYPES__ USED-Direktive spezifiziert sind, jedoch nicht in einer VECTOR-Direktive erwähnt werden, werden als undefinierte Unterbrecher-Arten bezeichnet. Die FAULT__ NOTIFICATION-Direktive wird zur Spezifizierung der Unterbrecher-Handhabungs-Routine für diese undefinierten Typen benutzt. Die RESTART__ LABEL-Direktive erzeugt Unterbrecher-Vektoren für diese undefinierten Unterbrechungen. Für ein Beispiel wird auf das "Sample-ICS-Listing", das später in diesem Abschnitt gezeigt wird, verwiesen.Interrupt types that are specified with the INTERRUPTS_TYPES__ USED directive but are not mentioned in a VECTOR directive are referred to as undefined interrupt types. The FAULT__ NOTIFICATION directive is used to specify the interrupt handling routine for these undefined types. The RESTART__ LABEL directive creates interrupt vectors for these undefined interruptions. See the "Sample ICS Listing" shown later in this section for an example.
Wenn die INTERRUPT_CONFIGURATION RAM ist, müssen die Unterbrecher-Vektoren erzeugt (in CONSTANTS_ROM) und dann auf den Unterbrecher-Vektor-Bereich (ICS.VRAM) in Laufzeit übertragen werden. Die FAULT_NOTIFIKATION-Direktive reserviert die geeigneten Bereiche in ICS.VRAM für die Unterbrecher-Vektoren und stellt den Code für die Übertragung der Vektoren dorthin während der Programm-Initialisierung auf.If the INTERRUPT_CONFIGURATION is RAM, the interrupt vectors must be generated (in CONSTANTS_ROM) and then transferred to the interrupt vector area (ICS.VRAM) in runtime. The FAULT_NOTIFICATION directive reserves the appropriate areas in ICS.VRAM for the interrupt vectors and sets up the code for the transfer of the vectors to them during program initialization.
Die in ICS.VROM erzeugte Tabelle hat die der in Tabelle 5 gezeigten.The table created in ICS.VROM is like that shown in Table 5.
Tabelle 5Table 5
Der Programm-Initialisierungs-Code wird durch die RESTART_LABEL-Direktive erzeugt, die an der Stelle PASCAL_BEGIN anfängt. Der Initialisierungs-Code wird bei Laufzeit durchgeführt und erfüllt die folgenden Aufgaben:The program initialization code is generated by the RESTART_LABEL directive, which begins at PASCAL_BEGIN. The initialization code is carried out at runtime and performs the following tasks:
- setzt die DS, SS und ES-Register an die Basis des Datasegmentes (DATABASEQQ);- sets the DS, SS and ES registers at the base of the data segment (DATABASEQQ);
- setzt den "stack pointer value" auf STKBASEQQ minus;- sets the "stack pointer value" to STKBASEQQ minus;
- initialisiert die "heap pointers" bei HEAPBASEQQ;- initializes the "heap pointers" at HEAPBASEQQ;
- ruft, wenn nötig, COPYVECTORS zum Kopieren der Unterbrecher-Vektoren von ICS.VROM in ICS.VRAM auf;- if necessary, calls COPYVECTORS to copy the interrupt vectors from ICS.VROM to ICS.VRAM;
- initialisiert, wenn nötig, den 8087 durch Ausführung eines FINIT und initialisiert das Kontrollwort;- initializes, if necessary, the 8087 by executing a FINIT and initializes the control word;
- klärt das globale variable fließende "point status" Wort;- clears the global variable flowing "point status" word;
- klärt das BP-Register so, daß die·traceback-Routine weiß, daß dies das Hauptprogramm ist und- clears the BP register so that the traceback routine knows that this is the main program and
- springt auf den Hauptprogramm-Anfangspunkt MAINQQ.- jumps to the main program starting point MAINQQ.
Der Rückstell-Code ist eine JMPS-Anweisung an der Stelle FFFFOH, die zum Initialisierungs-Code verweist. Wenn der Mikroprozessor zurückgestellt ist veranlaßt diese JMPS-Anweisung, daß der Initialisierungs-Code durchgeführt wird.The reset code is a JMPS instruction at the position FFFFOH, which refers to the initialization code. When the microprocessor is reset, this JMPS instruction causes the initialization code to be executed.
Die RESTART__LABEL-Anweisung enthält auch den Code für alle mit der Unterbrechung in Beziehung stehende Subroutinen, die benötigt werden (aufgelistet in Tabelle 4).The RESTART__LABEL statement also contains the code for any interrupt-related subroutines that are required (listed in Table 4).
Wenn der vom ICS erzeugte Konfigurations-Objekt-Code nicht auf die Prototyp-Prozessor-System-Anwendung paßt, kann der von ICS erzeugte Code abgewandelt werden.If the configuration object code generated by the ICS does not match the prototype processor system application, the code generated by the ICS can be modified.
Wenn das ICS angesprochen ist, wenn die -l (Listing) oder -o (Objekt-Code)-Wahl spezifiziert ist und die ICS-Integrations-Quellen-Datei keine Fehler enthält, dann erzeugt das ICS eine temporäre Zusammensetzungs-Sprachen-Quellen-Datei von den ICS-Anweisungen. Wenn die o-Wahl enthalten ist, spricht das ICS den 8086 Assembler an zur Erzeugung des Dateinamens (filename.io) und des Assembler-Listings (filename.il). Der von ICS verwendete Assembler-Aufruf sieht etwa folgendermaßen aus:
Was in den Assembler einzugeben ist, besteht aus zwei Dateien, welche so verarbeitet werden, als ob sie in einer einzigen Datei verkettet wären. Die erste Datei /lib/8086/ics.mc besteht hauptsächlich aus Assembler-Makro-Definitionen, die von der zweiten Datei benutzt werden. Die zweite Datei ist die temporäre Assembler-Sprachen-Quellen-Datei, die von ICS gerade erzeugt worden ist. Wenn der Assembler aufhört, wird die temporäre Datei automatisch gelöscht.What has to be entered into the assembler consists of two files, which are processed as if they were concatenated in a single file. The first file /lib/8086/ics.mc consists mainly of assembler macro definitions that are used by the second file. The second file is the temporary assembly language source file that ICS has just created. When the assembler stops, the temporary file is automatically deleted.
Wenn die -o-Wahl weggelassen wird, wird die temporäre Assembler-Sprachen-Quellen-Datei als Listing-Datei (filename.il) gesichert. Wenn der Programmierer den von ICS erzeugten Code abändern möchte, kann er diese Quellendatei editieren oder eine modifizierte Version der ICS-Makro-Datei erzeugen. Jedoch kann eine Abänderung des vom ICS erzeugten Codes dazu führen, daß das Programm gelinkt, geladen oder nicht korrekt ausgeführt wird.If the -o option is omitted, the temporary assembler language source file is saved as a listing file (filename.il). If the programmer wishes to modify the code generated by ICS, he can edit this source file or generate a modified version of the ICS macro file. However, changing the code generated by the ICS can result in the program being linked, loaded or not executed correctly.
Wenn beispielsweise angenommen wird, daß der Programmierer den Code ändern möchte, der die 8086-Register sichert, rettet oder wiederherstellt, dann kann er diesen Code in ics.mc, in Makros SAV-86-INLINE$, RES-86-INLINE$ und SAVE-RESTORE-86$ finden. Er erzeugt seine eigene Kopie von ics.mc und ändert diese drei Makros: cp/lib/8086/ics.mc mymacros ["Mache eine Kopie der ICS-Makros"]For example, if it is assumed that the programmer wants to change the code that saves, saves, or restores the 8086 registers, he can write that code in ics.mc, in macros SAV-86-INLINE $, RES-86-INLINE $, and SAVE-RESTORE-86 $ find. It creates its own copy of ics.mc and changes these three macros: cp / lib / 8086 / ics.mc mymacros ["Make a copy of the ICS macros"]
ed mymacros ["Ändere seine Kopie"]ed mymacros ["change its copy"]
Jedes Mal, wenn er ICS aufruft, kann er die Assembly-Sprachen-Quellen-Datei erzeugen, jedoch die Zusammensetzungsstufe weglassen:Every time he calls ICS he can generate the assembly language source file, but omit the composition level:
ics -l myprog. is ["Erzeuge Assembly-Sprachen-Quellen-Datei in myprog.il."]ics -l myprog. is ["Create assembly language source file in myprog.il."]
Dann setzt er die Quellendatei, die seine eigenen Makros benutzt, zusammen:Then he assembles the source file using his own macros:
asm myprog.io myprog.list ["Erzeuge die Objekt-Datei myprog.io und Listing-Datei myprog.list"]asm myprog.io myprog.list ["Create the object file myprog.io and listing file myprog.list"]
mymacros myprog.ilmymacros myprog.il
Diese Zusammensetzungsbefehlszeile verkettet wirksam seine Makro-Definitionen (mymacros) mit dem vom ICS produzierten myprog.il und setzt dann diese Datei zusammen.This composition command line effectively concatenates its macro definitions (mymacros) with the myprog.il produced by the ICS and then composes this file.
In Tabelle 6 sind die Assembler-Sprachen-Makros in der ics.ms-Datei und ihre Funktionen aufgelistet.Table 6 lists the assembly language macros in the ics.ms file and their functions.
Tabelle 6Table 6
Die vom ICS aus einer hypothetischen Integrations-Quellen-Datei erzeugte ICS-Listing-Datei wird nun dargestellt. Durch Studium der ICS-Listing-Daten kann der ICS-Konfigurations-Objekt-Code, der mit dem durchführbaren Ladungsmodul, der auf dem Prototyp-Prozessor-System verbunden wird, verstanden werden.The ICS listing file generated by the ICS from a hypothetical integration source file is now displayed. By studying the ICS listing data, the ICS configuration object code associated with the feasible load module connected on the prototype processor system can be understood.
ICS erzeugt eine Zwischendatei aus der ICS-Integrations-Quellen-Datei. Diese Datei wird zusammengesetzt und erzeugt die ICS-Konfigurations-Ziel-Datei und die dabei entstehende Auflistung heißt "ICS-Listing-Datei".ICS creates an intermediate file from the ICS integration source file. This file is put together and creates the ICS configuration target file and the resulting listing is called "ICS listing file".
Die Tabelle 8 zeigt die Unterbrechungsart, den Namen der Unterbrechungs-Dienst-Routine für diese Art, den ICS-Code, der die Register nach einer Unterbrechung sichert und speichert und die Zeilen-Nummern des Codes in der ICS-Auflistung.Table 8 shows the interrupt type, the name of the interrupt service routine for this type, the ICS code which saves and stores the registers after an interruption and the line numbers of the code in the ICS listing.
Um eine ausführbare, ladbare Datei erzeugen zu können, ist der Linker jeweils mitbeteiligt, von dem lediglich der Linker-Datei-Befehl spezifiziert wird, der durch das ICS-System geschaffen wurde und der die zu kreierende Datei lädt.In order to be able to generate an executable, loadable file, the linker is involved in each case, by which only the linker file command is specified which was created by the ICS system and which loads the file to be created.
Die Tabelle 9 ist eine beispielhafte Auflistung der Prompter-Routine gemäß Block 4 und die Tabelle 10 ist eine beispielhafte Auflistung der Prozessor-Routine gemäß Block 8.Table 9 is an exemplary listing of the prompting routine according to block 4 and table 10 is an exemplary listing of the processor routine according to block 8.
Tabelle 8Table 8
Tabelle 9Table 9
ICSP_MENUICSP_MENU
1) Gebe 'question mode' ein1) Enter 'question mode'
2) Gebe 'edit mode' ein2) Enter 'edit mode'
3) Display der Datei3) Display the file
4) Prüfe die Datei auf Fehler4) Check the file for errors
5) Sichere die laufende Kopie der Datei5) Back up the running copy of the file
6) Quittiere6) Acknowledge
7) Zeige eine Einführung in 'edit mode' an7) Show an introduction to 'edit mode'
8) Zeige eine Einführung in ICSP an8) View an introduction to ICSP
Behalte: Man kann "?" eingeben, um mehr info zu erhalten oder "!", um zum menu zurückzukehren.Remember: You can "?" Enter for more information or "!" to return to the menu.
1) Eingabe 'question mode'1) Enter 'question mode'
Bei 'question mode' fragt ICSP Fragen und modifiziert die Datei entsprechend den Antworten. Um aus 'question mode' herauszukommen, gebe "!" ein.In 'question mode', ICSP asks questions and modifies the file according to the answers. To get out of 'question mode' enter "!" a.
2) Gebe 'edit mode' ein2) Enter 'edit mode'
In 'edit mode' läßt sich die Datei abtasten, und es lassen sich Zeilen des Textes addieren, weglassen oder substituieren. Für eine Beschreibung von 'edit mode' wähle Punkt 7 dieses menu.In 'edit mode' the file can be scanned and lines of the text can be added, omitted or substituted. For a description of 'edit mode' choose point 7 of this menu.
3) Zeige die Datei an3) View the file
ICSP hält eine Kopie der Datei im Speicher und modifiziert diese Kopie entsprechend den Instruktionen. Diese Möglichkeit zeigt die Kopie der Datei an, die im Speicher ist, nicht aber die sich auf dem Datenträger befindliche Datei.ICSP keeps a copy of the file in memory and modifies this copy according to the instructions. This option shows the copy of the file that is in memory, but not the file on the disk.
4) Prüfe die Datei auf Fehler4) Check the file for errors
ICSP enthält ICS, um die Träger-Datei auf Fehler zu prüfen. Enthält die Träger-Datei nicht die letzten Änderungen, so wird sie auf den neuesten Stand gebracht, bevor ICS beginnt.ICSP contains ICS to check the carrier file for errors. If the carrier file does not contain the latest changes, it will be brought up to date before ICS starts.
5) Sichere die laufende Kopie der Datei5) Back up the running copy of the file
Die sich im Speicher befindliche Kopie der Datei wird aus dem Träger ausgeschrieben.The copy of the file in memory is written out from the carrier.
6) Quittiere6) Acknowledge
ICSP wird beendet. Enthält die Träger-Datei nicht die letzten Änderungen, so wird die Möglichkeit gegeben, die Träger-Datei auf den neuesten Stand zu bringen.ICSP is exiting. If the carrier file does not contain the latest changes, the option is given to bring the carrier file up to date.
7) Zeige eine Einführung in 'edit mode' an7) Show an introduction to 'edit mode'
Diese Einführung enthält eine Auflistung der 'edit mode'-Befehle.This introduction contains a listing of the 'edit mode' commands.
8) Zeige eine Einführung in ICSP an8) View an introduction to ICSP
Dies ist die gleiche 4-teilige Einführung, welche zuvor zu sehen war.This is the same 4-part introduction seen earlier.
Was soll mit der Information geschehen?What should be done with the information?
1) Belasse sie ungeändert.1) Leave them unchanged.
2) Addiere weitere Zeilen.2) Add more lines.
3) Entferne diese Information und erhalte neue Informationen für diese Anweisung.3) Remove this information and get new information for this instruction.
mulit_line_infomulit_line_info
Sollen nur einige der Informationen geändert werden, versuche 'edit mode'.If you only want to change some of the information, try 'edit mode'.
(Schreibe ! , um in das 'main-menu' zu gelangen.)(Write! To get to the 'main-menu'.)
keine Fehlerno mistakes
Glückwunsch - keine Fehler! Nun zurück zum ICSP-menu...Congratulations - no mistakes! Now back to the ICSP menu ...
falls einige Fehlerin case some bugs
Willkommen zurück bei ICSP. Es sieht so aus, als ob ICS einige Fehler in der gerade erzeugten Datei gefunden hat.Welcome back to ICSP. It looks like ICS found some errors in the file just created.
Falls Sie verstehen, was mit der Datei nicht in Ordnung ist, können Sie versuchen, mittels 'edit mode' die fehlerhaften Zeilen zu ermitteln. Sind aber Fehler vorhanden, die nicht verständlich sind, prüfe den Prototyp-Abschnitt des Handbuches. Auch läßt sich 'question mode' einsetzen, um mehr Information über die Problem-Bereiche in der Datei zu erhalten.If you understand what is wrong with the file, you can try using 'edit mode' to identify the faulty lines. However, if there are errors that are not understandable, check the prototype section of the manual. You can also use question mode to get more information about the problem areas in the file.
EINFÜHRUNG IN ICSPINTRODUCTION TO ICSP
ICSP erzeugt oder modifiziert eine ICS-Quell-Datei entsprechend den Anweisungen. Aus dieser Quell-Datei kann ICS erzeugen:ICSP creates or modifies an ICS source file according to the instructions. From this source file, ICS can generate:
° eine Objekt-Datei, welche einen Code zum initiieren des Pascal-Programms und Unterbrechungs-Vektoren enthält; und° an object file which contains code to initiate the Pascal program and interrupt vectors; and
° eine Linker-Befehls-Datei, welche dem Linker mitteilt, wie die Objekt-Dateien kombiniert werden mittels Pascal, ICS und dem 8086/8088-Assembler.° a linker command file, which tells the linker how the object files are combined using Pascal, ICS and the 8086/8088 assembler.
FÜR ICSP ERFORDERLICHE INFORMATIONENINFORMATION REQUIRED FOR ICSP
Die ICS-Quell-Datei stellt die folgenden Arten von Informationen über das Programm bereit:The ICS source file provides the following types of information about the program:
° HARDWARE-CONFIGURATION - welche Art von Chips benutzt werden; welche Bereiche des Speichers als RAM dienen und welche als ROM; ob das Programm Service-Rufe benutzt.° HARDWARE CONFIGURATION - what kind of chips are used; which areas of memory serve as RAM and which as ROM; whether the program uses service calls.
° SOFTWARE-KONFIGURATION - die Namen der Objekt-Dateien, welche das Programm bilden.° SOFTWARE CONFIGURATION - the names of the object files that make up the program.
° UNTERBRECHUNGS-KONFIGURATION - welche Unterbrechungsarten (falls überhaupt) das Programm behandeln muß; die Namen der Unterbrechungs-Service-Programme; wie diese Programme eingeleitet werden.° INTERRUPTION CONFIGURATION - which types of interrupts (if any) the program must handle; the names of the interruption service programs; how these programs are initiated.
Um ICSP wirksam einzusetzen, sollten diese Informationen verfügbar sein.To use ICSP effectively, this information should be available.
Beispiel einer ICS-Quell-DateiExample of an ICS source file
PASCAL_KONFIGURATION:PASCAL_KONFIGURATION:
WIE ICSP ARBEITETHOW ICSP WORKS
ICSP hat zwei Betriebsarten: 'question mode' und 'edit mode'.ICSP has two modes of operation: 'question mode' and 'edit mode'.
Bei question mode fragt ICSP Fragen und benutzt die Antworten, um eine ICS-Quell-Datei zu erzeugen. Bei erstmaliger Benutzung von ICSP sollte question mode eingesetzt werden. Es hilft beim Erlernen der Bedeutung jedes ICS-Befehls und seiner Parameter.In question mode, ICSP asks questions and uses the answers to generate an ICS source file. When using ICSP for the first time, question mode should be used. It helps in learning the meaning of each ICS command and its parameters.
Bei edit mode kann die ICS-Quell-Datei abgetastet werden und in einfacher Weise verändert werden. Eine detaillierte Beschreibung von edit mode erfolgt später.In edit mode, the ICS source file can be scanned and easily changed. A detailed description of edit mode follows later.
In jedem Betriebszustand zeigt ICSP die alten Parameter eines Befehls an, bevor dieser modifiziert wird und zeigt die neuen Parameter danach an.In every operating state, ICSP shows the old parameters of a command before it is modified and shows the new parameters afterwards.
? UND !? AND !
In beiden Betriebsarten wartet ICSP auf den Benutzer, um etwas zu schreiben. Man kann ein "?" oder ein "!" eingeben. "?" zeigt ICSP, daß es mehr Informationen darüber bereitstellen soll, was es als Eingabe erwartet. "!" erzeugt eine Zusammenstellung von Anforderungen, welche ICSP ausführen kann.In both modes, ICSP waits for the user to write something. You can use a "?" or a "!" input. "?" indicates to the ICSP that it should provide more information about what to expect as input. "!" creates a compilation of requirements which ICSP can execute.
FEHLERSUCHETROUBLESHOOTING
Bei question mode versucht ICSP, genug Informationen zu geben, um sicherzustellen, daß die erzeugte Datei die richtige Syntax aufweist und logisch konsistent ist. Um sicherzustellen, daß die Datei tatsächlich richtig ist, kann aus dem main-menu eine "Prüf-Datei für Fehler" ausgewählt werden. ICSP veranlaßt ICS, die Datei abzutasten; ICS berichtet jeglichen Fehler und zeichnet diesen in der Datei auf.In question mode, ICSP tries to provide enough information to ensure that the generated file has the correct syntax and is logically consistent. To ensure that the file is actually correct, a "check file for errors" can be selected from the main menu. ICSP causes ICS to scan the file; ICS reports any errors and records them in the file.
ALTERNATIVEN ZU ICSPALTERNATIVES TO ICSP
ICSP ist vorgesehen, um die Erzeugung und Veränderung der ICS-Quell-Datei zu vereinfachen. Ist der Benutzer jedoch mit der ICS-Sprache vertraut, so mag er es genauso einfach finden, einen üblichen Text-Editor zu benutzen, um die ICS-Datei auszugeben.ICSP is provided to simplify the creation and modification of the ICS source file. However, if the user is familiar with the ICS language, he may find it just as easy to use a standard text editor to output the ICS file.
SYNTAX-ERWÄGUNGENSYNTAX CONSIDERATIONS
Jegliche hexadezimale Zahl, welche eingegeben wird, muß mit einer Dezimal-Ziffer beginnen und mit einem "H" enden. (z.B. OFFFFH, nicht FFFF)Any hexadecimal number that is entered must start with a decimal digit and end with an "H". (e.g. OFFFFH, not FFFF)
Jeder Bereich von Zahlen weist die Form (kleine Zahl, große Zahl) auf, z.B. bedeutet (25,30) den Bereich von 25 bis 30 (dezimal) und (OH,OFFH) bedeutet 0 bis FF (hexadezimal).Each range of numbers has the form (small number, large number), e.g. (25,30) means the range from 25 to 30 (decimal) and (OH, OFFH) means 0 to FF (hexadecimal).
EDIT MODEEDIT MODE
Edit mode hat zwei Verwendungen:Edit mode has two uses:
1) Ist eine Datei erzeugt (z.B. mittels question mode), kann edit mode benutzt werden, um die Datei abzutasten und Korrekturen anzubringen.1) Once a file has been created (e.g. using question mode), edit mode can be used to scan the file and make corrections.
2) Ist der Benutzer einmal mit der ICS-Sprache vertraut, so kann edit mode benutzt werden, um neue Dateien aus dem ICS-Netzwerk zu erzeugen.2) Once the user is familiar with the ICS language, edit mode can be used to create new files from the ICS network.
In edit mode bringt ICSP eine Zeile aus der ICS-Quell-Datei zur Anzeige. Durch Drücken der RETURN-Taste kann die Zeile bestätigt werden und zur nächsten Zeile übergegangen werden oder es kann ein neues Parameter-Feld eingegeben werden, um das Gezeigte zu ersetzen.In edit mode, ICSP displays a line from the ICS source file. The line can be confirmed by pressing the RETURN key and the next line can be passed or a new parameter field can be entered to replace the one shown.
Es folgt eine Zusammenfassung der Möglichkeiten von edit mode:The following is a summary of the possibilities of edit mode:
Befehl FunktionCommand function
! verlasse edit mode und kehre zu main menu zurück! exit edit mode and return to main menu
? zeige diese Liste von edit-mode-Befehlen? show this list of edit-mode commands
[return] gehe zur nächsten Zeile[return] go to the next line
[text] ersetze den Text im Parameter-Feld[text] replace the text in the parameter field
-- gehe zum Anfang der Datei- go to the beginning of the file
++ gehe zum Ende der Datei++ go to the end of the file
-n gehe n Zeilen zurück in der Datei-n go back n lines in the file
+n gehe n Zeilen vorwärts in der Datei+ n go n lines forward in the file
AC addiere einen Befehl hinter die laufende ZeileAC add a command after the current line
IC füge einen Befehl vor die laufende Zeile einIC insert a command before the current line
D streiche die laufende ZeileD delete the current line
Für Weisungen, die mehr als einmal auftreten:For instructions that occur more than once:
A addiere eine Weisung hinter die laufende ZeileA add an instruction after the current line
I schiebe eine Weisung vor die laufende Zeile ein pas_conI insert an instruction before the current line pas_con
Gebe bitte einen Titel für die ICS-Quell-Datei ein.Please enter a title for the ICS source file.
pas_con_infopas_con_info
Dieser Titel kann so lang sein wie gewünscht und kann mehr als ein Symbol enthalten, nur keine doppelten Anführungszeichen.This title can be as long as you want and can contain more than one symbol, just no double quotes.
hw_conhw_con
Welche der folgenden Ausdrücke beschreibt den benutzten Prozessor am besten?Which of the following expressions best describes the processor you are using?
1) 80861) 8086
2) 80882) 8088
3) 8086 mit 80873) 8086 with 8087
4) 8088 mit 80874) 8088 with 8087
Erläuterung des SpeichersExplanation of the memory
Das Programm enthält "absolute" Codes und "verschiebbare" Codes. Absolute Codes müssen an bestimmten Positionen im Speicher plaziert werden (beispielsweise müssen Unterbrechungs-Vektoren an Orten 0-3FF positioniert werden).The program contains "absolute" codes and "shiftable" codes. Absolute codes must be placed in specific locations in memory (e.g., break vectors must be placed in locations 0-3FF).
Der durch den Pascal-Compiler erzeugte Code ist verschiebbar. Das ICS kann den Linker anweisen, den verschiebbaren Code an einer beliebigen Stelle des Speichers anzuordnen.The code generated by the Pascal compiler can be moved. The ICS can instruct the linker to place the relocatable code anywhere in memory.
Die folgenden Code-Arten können im ROM gespeichert werden:The following types of code can be stored in ROM:
INSTRUKTIONS-ROM - ausführbarer CodeINSTRUCTION ROM - Executable Code
KONSTANTEN-ROM - andere Codes, die bei der Programmausführung nicht geändert werden - beispielsweise Buchstabenreihen und numerische Konstanten.CONSTANT ROM - other codes that do not change when the program is run - for example, strings of letters and numeric constants.
Die folgenden Code-Arten müssen im RAM gespeichert werden:The following types of code must be stored in RAM:
GLOBAL-VAR-RAM - Variable aus dem äußeren Level des Programms.GLOBAL-VAR-RAM - variable from the outer level of the program.
HEAP-STACK-RAM - der durch den Stapelspeicher und das Heap eingenommene Bereich. Der Stapelspeicher beginnt am oberen Endabschnitt dieses Bereiches und wächst nach unten, während das Heap am unteren Ende beginnt und aufwärts wächst. Der Stapelspeicher enthält Parameter, Rückführadressen und örtliche Variable der Programme. Das Heap enthält linkergelistete Variable, die mit dem Standard-Verfahren NEW gewonnen sind.HEAP-STACK-RAM - the area occupied by the stack memory and the heap. The stack starts at the top of this area and grows down, while the heap starts at the bottom and grows up. The stack contains parameters, return addresses and local variables of the programs. The heap contains linker-listed variables obtained with the standard NEW procedure.
Bezüglich näherer Informationen über diese vier ICS-Anweisungen einschließlich einer Erläuterung der Programmierung von Assembler-Sprachen, siehe das Handbuch des Compilers.For more information on these four ICS instructions, including an explanation of programming assembly languages, see the compiler manual.
Menu-SpeicherMenu memory
Der Benutzer kann:The user can:
1) die Zuordnungen bestätigen1) confirm the assignments
2) das INSTRUKTIONS-ROM ändern2) change the INSTRUCTION ROM
3) das KONSTANTEN-ROM ändern3) change the CONSTANT ROM
4) das GLOBAL-VAR-RAM ändern4) change the GLOBAL-VAR-RAM
5) das HEAP-STACK-RAM ändern5) change the HEAP-STACK-RAM
6) die ICS-Erläuterungen dieser Ausdrücke anzeigen6) view the ICS explanation of these terms
Speicher-Prompt-1Save prompt 1
Gebe einen oder mehrere Bereiche von hex-Adressen ein (es kann mehr als eine Zeile benutzt werden).Enter one or more ranges of hex addresses (more than one line can be used).
Speicher-Prompt-2Save prompt 2
Gebe einen oder mehrere Bereiche von hex-Adressen ein.Enter one or more ranges of hex addresses.
Jeglicher weiterer SpeicherAny additional storage
Existiert eine andere Zeile von Adressen-Bereichen für diese Anweisung?Does another line of address ranges exist for this instruction?
Bereichs-SyntaxRange syntax
Jede hexadezimale Zahl muß mit einer dezimalen Ziffer beginnen und mit einem "H" enden.Every hexadecimal number must begin with a decimal digit and end with an "H".
Reset-SpeicherReset memory
Wie behandelt der Prototyp ein RESET?How does the prototype handle a RESET?
1) Der Speicher enthält an Orten FFFFO-FFFFF die erste Instruktion, welche nach dem RESET ausgeführt werden soll.1) The memory contains the first instruction to be executed after the RESET at locations FFFFO-FFFFF.
2) Besondere Hardware bewirkt die erste auszuführende Instruktion. (Typ "2" des Programms behandelt den RESET nicht.)2) Special hardware causes the first instruction to be executed. (Type "2" of the program does not handle the RESET.)
svc-infosvc-info
Ein Service-Ruf ist die Anforderung seitens des Programmes für einen Service des MDL-Betriebssystems (OS/40 oder DOS/50). Pascal I/O-Feststellungen (z.B. READ, READLN, WRITE, WRITELN) werden in Service-Rufe umgesetzt. Wenn alle I/O des Programms durch den Prototyp behandelt werden, kann man wahrscheinlich mit "N" antworten; anderenfalls lautet die Antwort "Y".A service call is a request from the program for a service of the MDL operating system (OS / 40 or DOS / 50). Pascal I / O determinations (e.g. READ, READLN, WRITE, WRITELN) are converted into service calls. If all of the program's I / O is handled by the prototype, then you can probably answer "N"; otherwise the answer is "Y".
Vektor-Kanal-InfoVector channel info
Ein Service-Ruf (SVC) beginnt, wenn das Programm eine OUT-Instruktion an einem der ausgewählten Bereiche von 8 I/O-Kanälen ausführt. Die Kanal-Zahl richtet das Betriebssystem (DOS/50 oder OS/40) auf einen "SRB-Zeiger", welcher auf den SRB (Service-Request-Block) weist, der den auszuführenden Service beschreibt.A service call (SVC) begins when the program executes an OUT instruction on one of the selected ranges of 8 I / O channels. The operating system (DOS / 50 or OS / 40) directs the channel number to an "SRB pointer" which points to the SRB (service request block), which describes the service to be performed.
Die Anordnung von 8 SRB-Zeigern wird ein "SRB-Vektor" genannt. Der SRB-Vektor besetzt in der Regel die Bytes 40-5F des Speichers. Erfordert das Programm die Verwendung dieser Bereiche des Speichers für andere Zwecke (wie beispielsweise Unterbrechungs-Vektoren), kann auch eine andere Anordnung für den SRB-Vektor vorgesehen sein. Benutzt das Programm I/O-Kanäle im Default-SVC-Kanalbereich (FFF0-FFF7), so kann für die SVC ein anderer Kanal-Bereich benutzt werden.The arrangement of 8 SRB pointers is called an "SRB vector". The SRB vector usually occupies bytes 40-5F of the memory. If the program requires the use of these areas of the memory for other purposes (such as interrupt vectors, for example), a different arrangement for the SRB vector can also be provided. If the program uses I / O channels in the default SVC channel area (FFF0-FFF7), another channel area can be used for the SVC.
Die SVC sind im einzelnen in den 8540 und 8550-Handbüchern beschrieben.The SVC are described in detail in the 8540 and 8550 manuals.
svc-menusvc-menu
Es ist möglich:It is possible:
1) die Einstellungen zu bestätigen1) confirm the settings
2) die Anordnungen des SRB-Vektors zu ändern2) change the arrangements of the SRB vector
3) den SVC-Kanal-Bereich zu ändern3) change the SVC channel range
4) die ICSP-Erläuterungen dieser Ausdrücke auf dem display zu zeigen.4) Show the ICSP explanations of these terms on the display.
sv-con-infosv-con-info
Dies ist die Objekt-Datei, die beim Übersetzen des Hauptprogrammes erzeugt wird (diejenige mit dem PROGRAM-Statement). Es läßt sich auch eine Objekt-Datei bestimmen, die durch den Assembler erzeugt ist, oder es kann auch "NONE" eingegeben werden.This is the object file that is created when the main program is compiled (the one with the PROGRAM statement). An object file can also be specified which has been generated by the assembler, or "NONE" can also be entered.
Andere ModulsOther module
Sind irgendwelche anderen Objekt-Dateien mit dem Programm zu verknüpfen?Are there any other object files to be linked to the program?
Modul-infoModule info
Solche Datei könnte insbesondere sein:Such a file could in particular be:
° die Objekt-Datei, welche dann erzeugt wird, wenn ein Pascal-Modul übersetzt wird, welche mit einem MODULE beginnt; oder° the object file that is created when a Pascal module is translated that begins with a MODULE; or
° eine Objekt-Datei, welche durch den Assembler erzeugt ist.° an object file generated by the assembler.
module-promptmodule-prompt
Gebe den pathname der zu verknüpfenden Objekt-Datei ein (Beispiel: /usr/john/controller/meltdown.po)Enter the pathname of the object file to be linked (example: /usr/john/controller/meltdown.po)
BibliothekenLibraries
Benutzt das Programm irgendwelche Unterprogramme aus Bibliotheken außer der üblichen Pascal-Laufzeit-Hilfs-Bibliothek?Does the program use any subroutines from libraries other than the usual Pascal runtime auxiliary library?
ANMERKUNGANNOTATION
Hat der Benutzer seine I/O-Bibliothek erzeugt (um pas.posi.scsd zu ersetzen), so soll diese Bibliothek hier nicht eingeschlossen werden. Diese Bibliothek soll später mit der FILE SUPPORT-Anweisung erläutert werden.If the user has created his / her I / O library (to replace pas.posi.scsd), this library should not be included here. This library will be explained later with the FILE SUPPORT statement.
Bibliothek-infoLibrary info
Der Bibliotheks-Generator (libgen) kann benutzt werden, um Bibliotheken mit eigenen Pascal- oder Assembler Sprachen-Routinen zu erzeugen. Wurde libgen nicht benutzt, sollte mit "N" geantwortet werden.The library generator (libgen) can be used to create libraries with your own Pascal or assembler language routines. If libgen was not used, an "N" should be answered.
Bibliotheks-promptLibrary prompt
Gebe den "pathname" der durch das Programm benutzten Bibliothek ein (Beispiel: /usr/john/controller/lib)Enter the "pathname" of the library used by the program (example: / usr / john / controller / lib)
weitere Bibliothekenother libraries
Benutzt das Programm Routinen aus anderen Bibliotheken?Does the program use routines from other libraries?
file-supfile-sup
Benutzt das Programm eines der folgenden Verfahren oder Funktionen:If the program uses one of the following methods or functions:
READ, READLN, WRITE, WRITELN, REWRITE, RESET, GET, PUT, PURGE, ASSIGN, PAGE?READ, READLN, WRITE, WRITELN, REWRITE, RESET, GET, PUT, PURGE, ASSIGN, PAGE?
file-libfile-lib
Soll das Programm die Standard-Bibliothek der Pascal I/O-Programme benutzen?Should the program use the standard library of the Pascal I / O programs?
gebe lib-info einenter lib-info
Falls "Y" eingegeben, wird das I/O-Programm aus pas.posi.scsd entnommen.If "Y" is entered, the I / O program is taken from pas.posi.scsd.
Wird "N" eingegeben, muß ein Bibliotheks-Programm eingegeben werden, um pas.posi.scsd zu ersetzen.If "N" is entered, a library program must be entered to replace pas.posi.scsd.
get-file-libget-file-lib
Gebe den pathname der Bibliothek der I/O-Programme ein (Beispiel: /usr/john/controller/io.lib) get-io-libEnter the pathname of the library of the I / O programs (example: /usr/john/controller/io.lib) get-io-lib
Gebe den pathname der I/O-Bibliothek ein.Enter the pathname of the I / O library.
(Beispiel: /usr/john/controller/iolib)(Example: / usr / john / controller / iolib)
ram-or-romram-or-rom
Welche der folgenden Sätze beschreibt die in die Positionen 0-3FF eingespeicherten Unterbrechungs-Vektoren am besten?Which of the following sentences best describes the interrupt vectors stored in positions 0-3FF?
1) die Plätze 0-3FF sind im ROM.1) the places 0-3FF are in the ROM.
2) die Plätze 0-3FF sind im RAM. Die Unterbrechungs-Vektoren werden während der Programm-Initialisierung in die Plätze 0-3FF einkopiert.2) the places 0-3FF are in the RAM. The interrupt vectors are copied into locations 0-3FF during program initialization.
intrpt-types-introintrpt-types-intro
Liste die Unterbrechungsarten (0-255) auf, welche das Programm zu verarbeiten hat. (Es kann mehr als eine Zeile benutzt werden.)List the interrupt types (0-255) that the program has to process. (More than one line can be used.)
intrpt-types-promptintrpt-types-prompt
Gebe eine oder mehr Dezimalzahlen oder Bereiche von Dezimalzahlen ein. Beispiel: 0,2,4,[16,31],33,[128,143]Enter one or more decimal numbers or ranges of decimal numbers. Example: 0,2,4, [16,31], 33, [128,143]
intrpt-types-infointrpt-types-info
Das Programm braucht nicht notwendigerweise eine Unterbrechungs-Service-Routine für jede dieser Arten. Unter Benutzung der FAULT-NOTIFICATION-Anweisung kann ICS benutzt werden, um eine Routine zum Verarbeiten unerwarteter Typen zu erzeugen, oder es kann eine eigene Default-Routine gebildet werden. Ein 4-byte-Unterbrechungs-Vektor wird für jede Unterbrechungsart der Liste erzeugt.The program does not necessarily need an interrupt service routine for each of these types. Using the FAULT-NOTIFICATION statement, ICS can be used to generate a routine for processing unexpected types, or your own default routine can be created. A 4-byte interrupt vector is generated for each interrupt type in the list.
Andere Arten (von Unterbrechungen)Other types (of interruptions)
Soll eine andere Zeile von Unterbrechungsarten eingegeben werden?Do you want to enter a different line of interruption types?
save-float-introsave-float-intro
Für jede der Unterbrechungsarten (0-255) kann ICS automatisch die Fließ-Register des Programms sichern, bevor der Unterbrechungs-Service aufgerufen wird und die Register erneuern, nachdem die Routine durchgeführt ist.For each of the interrupt types (0-255), ICS can automatically save the program's floating registers before calling the interrupt service and refresh the registers after the routine is completed.
Wieviele der durch das Programm verarbeiteten Unterbrechungsarten erfordern ICS, um die Fließ-Register zu sichern und zu regenerieren?How many of the interrupt types handled by the program require ICS to save and regenerate the floating registers?
1) keine1) none
2) weniger als die Hälfte2) less than half
3) die Hälfte oder mehr3) half or more
4) alle save-float-info4) everyone save-float-info
Falls Fließ-Register gesichert werden sollen, wird die interne Pascal-Variable FPSWGG im Stapelregister gesichert, bevor der Unterbrechungs-Service aufgerufen wird. Falls ein 8087 zur Verfügung steht, wird das Programm auch FNSAVE-Befehle ausführen, bevor der Ruf erfolgt und einen FRSTOR-Befehl danach.If floating registers are to be saved, the internal Pascal variable FPSWGG is saved in the stack register before the interrupt service is called. If an 8087 is available, the program will also execute FNSAVE commands before the call is made and a FRSTOR command afterwards.
Im allgemeinen wird nur ein einziges Fließ-Sicherungs-Register benötigt, wenn die Unterbrechungs-Service-Routine Fließ-Operationen verwendet.In general, only a single flow save register is needed when the interrupt service routine uses flow operations.
except-promptexcept-prompt
Gebe eine oder mehrere Dezimalzahlen oder Bereiche von Dezimalzahlen ein.Enter one or more decimal numbers or ranges of decimal numbers.
Beispiel: 0,2,4,[16,31],33,[128,143]Example: 0,2,4, [16,31], 33, [128,143]
weitere Ausnahmenfurther exceptions
Soll eine weitere Zeile von Ausnahmen zugefügt werden?Do you want to add another line of exceptions?
fault-not-menufault-not-menu
Was soll geschehen, wenn eine Unterbrechung erfolgt, aber keine Service-Routine für diese Art von Unterbrechungen vorgesehen ist?What should happen if an interruption occurs, but no service routine is provided for this type of interruption?
1) Stop des Programms mit einer HLT-Instruktion.1) Stop the program with an LDS instruction.
2) Ausgabe einer Fehler-Botschaft und Stop des Programms.2) Output of an error message and stop of the program.
3) Ausführung einer Routine, die geschrieben ist.3) Execution of a routine that is written.
fault-not-infofault-not-info
Diese Frage bezieht sich auf jegliche Unterbrechung, welche in der INTERRUPT-TYPE-USED auftauchende Passage-Direktive aufgelistet, aber nicht einer Unterbrechungs-Service-Routine in einer VEKTOR-Direktive zugeordnet ist.This question relates to any interruption that is listed in the INTERRUPT-TYPE-USED passage directive but is not assigned to an interrupt service routine in a VECTOR directive.
get-default-nameget-default-name
Was ist der Name der Routine zur Verarbeitung von unerwarteten Unterbrechungsarten?What is the name of the routine for handling unexpected interrupt types?
default-name-infodefault-name-info
Dieser Name kann der Name eines Pascal-Verfahrens oder eines allgemeinen Symbols sein, das den Eingang einer Assembler-Sprache-Routine markiert. own-code-menuThis name can be the name of a Pascal method or a general symbol that marks the entry of an assembly language routine. own-code-menu
Erfolgt eine solche Unterbrechung, so soll das Programm:If such an interruption occurs, the program should:
1) sich direkt an die Routine wenden, welche die Rückkehr von der Unterbrechung verarbeitet, oder1) contact the routine directly processing the return from the interrupt, or
2) die Register sichern, die Routine aufsuchen, die Register zurückstellen und von der Unterbrechung rückkehren?2) save the registers, go to the routine, reset the registers, and come back from the interrupt?
in-line-menuin-line menu
Soll die Register-Sicherung und die Rückstellung der Routines folgendermaßen beschaffen sein:Should the register backup and the resetting of the routines be designed as follows:
1) einschließlich in-line (spart etwa 55 Zyklen pro Routine), oder1) including in-line (saves about 55 cycles per routine), or
2) als Subroutine aufgerufen werden (spart etwa 6 Bytes pro Routine)2) be called as a subroutine (saves about 6 bytes per routine)
vector-introvector-intro
Nun wird nach der Liste der Namen der Unterbrechungs-Service-Routine des Programms gefragt. Jeder Name kann der Name einer Pascal-Prozedur sein oder auch ein allgemeines Symbol, das den Eingang einer Assembler-Sprache-Routine markiert. Für jede Routine werden die Unterbrechungsarten aufgelistet, welche die Routine verarbeitet.You will now be asked for the list of names of the program's interrupt service routine. Each name can be the name of a Pascal procedure or a general symbol that marks the entry of an assembly language routine. For each routine, the types of interrupts that the routine processes are listed.
Sind irgendwelche Unterbrechungs-Service-Routines aufzulisten?Are there any interruption service routines to list?
restart-labelrestart label
Existieren Assembler-Sprach-Routines, welche ausgeführt sein müssen, bevor das Pascal-Programm beginnt?Are there any assembly language routines that have to be executed before the Pascal program starts?
restart-inforestart-info
Die Stapel-Register heap und Segment-Register werden automatisch durch ICS-Routines initialisiert, bevor das Pascal-Programm beginnt. Diese Routines beginnen am Anfangspunkt PASCAL_BEGIN. Existiert eine Initialisierungs-Routine, welche dem Beginn des Pascal-Programms vorangehen muß, antworte mit "Y". Diese Routine muß mit einem Sprung auf PASCAL_BEGIN enden.The stack registers heap and segment registers are automatically initialized by ICS routines before the Pascal program starts. These routines begin at the starting point PASCAL_BEGIN. If there is an initialization routine which must precede the start of the Pascal program, answer with "Y". This routine must end with a jump to PASCAL_BEGIN.
get-restart-labelget-restart-label
Gebe den Namen (Eingangspunkt) der Routine ein, die beim Wiederanlaufen ausgeführt werden muß. Dieser Name muß ein allgemeines Symbol sein, er wird benutzt als die Übertragungsadresse des Programms.Enter the name (entry point) of the routine that must be executed when restarting. This name must be a general symbol, it is used as the transmission address of the program.
Ende des Textes.End of text.
Tabelle 10Table 10
In Figur 2 ist ein Computer-Terminal 40 in Verbindung mit einem Zentralcomputer 30 dargestellt. Das Terminal 40 umfaßt eine Sichtanzeige 42, etwa einen Bildschirm oder ein Display, eine Eingabetastatur 43, einen Prozessor 41, einen Speicher 44 sowie einen Zeitgeber und eine Steuerung 45. Zusätzlich ist das Terminal 40 mit einer Ein/-Aus-Schnittstelle 46 versehen, um eine Zweiwegverbindung zu einem Zentralcomputer 30 zu ermöglichen.In FIG. 2, a computer terminal 40 is shown in connection with a central computer 30. The terminal 40 comprises a visual display 42, for example a screen or a display, an input keyboard 43, a processor 41, a memory 44 as well as a timer and a control 45. In addition, the terminal 40 is provided with an on / off interface 46, to enable a two-way connection to a central computer 30.
Der eigentliche Computer 30 hat eine zentrale Prozeß-Einheit (CPU) 32, der unter einen Taktgeber und Steuereinheit 36 arbeitet. Ferner ist die CPU 32 neben einem üblichen Arbeitsspeicher oder Speichermedium (nicht dargestellt) mit einem besonderen Speicher 34 verbunden, der zu den anderen Speichern in Verbindung stehen kann. Eine Ein-/Ausgabe-Schnittstelle (I/O) 38 ermöglicht eine Verbindung mit der Peripherie und mit dem Terminal 40, sowie mit einem Drucker oder Plotter 39. Ferner ist eine Anschlußmöglichkeit mit einem Programmierer 37 vorgesehen.The actual computer 30 has a central processing unit (CPU) 32 which operates under a clock generator and control unit 36. In addition to a conventional main memory or storage medium (not shown), the CPU 32 is also connected to a special memory 34 which can be connected to the other memories. An input / output interface (I / O) 38 enables a connection to the periphery and to the terminal 40, as well as to a printer or plotter 39. A connection to a programmer 37 is also provided.
Für den Betrieb gemäß der Erfindung sind die Prompter- und Prozessor-Routinen gemäß den Tabellen 9 und 10 in dem besonderen Speicher 34 enthalten. Dadurch kann eine Bedienungsperson über die Tastatur 43 des Terminals 40 das ICS-System initialisieren, wodurch die Prompter-Routine von der CPU 32 aus dem besonderen Speicher 34 abgerufen wird. Die einzelnen Prompts werden dann zum Datensichtgerät oder Bildschirm 42 des Terminals 40 über die Schnittstellen (I/O) 38 und 40 übertragen. Die Bedienungsperson gibt seine Antworten mittels Tastatur 43 ein und diese werden wieder zur CPU 32 zurückübertragen. Aus den Eingaben als Ergänzungen entsteht so in der CPU 32 die Integrations-Quell-Datei gemäß Block 6 in Figur 1.The prompter and processor routines according to Tables 9 and 10 are contained in the special memory 34 for operation in accordance with the invention. As a result, an operator can initialize the ICS system via the keyboard 43 of the terminal 40, as a result of which the prompting routine is called up by the CPU 32 from the special memory 34. The individual prompts are then transmitted to the data display device or screen 42 of the terminal 40 via the interfaces (I / O) 38 and 40. The operator enters his answers using the keyboard 43 and these are transmitted back to the CPU 32. The integration source file according to block 6 in FIG. 1 is thus created in the CPU 32 from the entries as additions.
Als nächstes wird die Prozessor-Routine von der CPU 32 aufgerufen, um die Integrations-Quelle in diejenige Linker-Steuerdatei automatisch umzuwandeln, wie oben ausführlich diskutiert wurde, worauf, ebenfalls automatisch wie zuvor beschrieben, die Konfigurations-Objekt-Datei oder ein neues Betriebssystem für einen Computer oder eine neue kompakt geschriebene Arbeitsdatei entsteht.Next, the processor routine is called by the CPU 32 to automatically convert the integration source into that linker control file, as discussed in detail above, whereupon, also automatically as previously described, the configuration object file or a new operating system for a computer or a new compactly written work file.
Sobald diese Schritte weitgehend selbsttätig vollzogen sind, kann das entstandene Programm dadurch maschinenunabhängig gemacht werden, daß, falls ein anderer Prototyp eines Prozessors hiermit geladen werden soll, der von dem in der hier beschriebenen Maschine abweicht, dessen Parameter (Taktfrequenz mit Standard-Befehlssatz) in den Computer 30 geladen werden, worauf ein Compiler in den Computer 30 eingegeben werden oder entsprechend der gewünschten Sprache bereits in diesem enthalten sein kann, so daß entweder eine maschinenunabhängige oder an eine bestimmte Sprache geknüpfte Quelldatei entsteht. Im obigen Beispiel wurde alles mit einer sehr hochentwickelten Computersprache, PASCAL,As soon as these steps have been carried out largely automatically, the resulting program can be made machine-independent in that, if another prototype of a processor is to be loaded, which differs from the one in the machine described here, its parameters (clock frequency with standard instruction set) in the computer 30 are loaded, whereupon a compiler can be entered in the computer 30 or, depending on the desired language, can already be contained therein, so that either a machine-independent source file or a source file linked to a specific language is created. In the example above everything was done with a very sophisticated computer language, PASCAL,
verknüpft.connected.
Mit den vier oben näher beschriebenen Dateien (files), der Linker-Routine des residierenden Computers 30, unter der Steuerung der Linker-Befehlsdatei (linker command file) in Verbindung mit der Konfigurations-Objektdatei (configuration object file), der Pascal-Objekt-Datei und als notwendig herausgefundenen Routinen des Pascal-Laufzeit-Befehlsvorrates entsteht ein sofort exekutierbares LOAD-Modul gemäß Figur 1, Block 20, und zwar in kürzester Zeit, frei von Fehlern und nahezu vollständig automatisch. Das exekutierbare LOAD-Modul umfaßt - in Maschinensprache - die Informationen und Zuweisungen in die ROMs des Prototyp-Prozessor-Systems für dieses System um als Programm zu arbeiten einschließlich in den Pascal-Objekt-Dateien, soweit diese mit entstanden sind.With the four files described above, the linker routine of the resident computer 30, under the control of the linker command file in conjunction with the configuration object file, the Pascal object file. File and routines of the Pascal runtime instruction set that have been found to be necessary result in an immediately executable LOAD module according to FIG. 1, block 20, to be precise in the shortest possible time, free of errors and almost completely automatically. The executable LOAD module includes - in machine language - the information and assignments in the ROMs of the prototype processor system for this system to work as a program, including in the Pascal object files, insofar as these have been created.
Mit den geeigneten Peripherien können die Module sowohl der Programmierstufe 37 zugeführt werden, um in ein PROM geladen zu werden oder es können die Inhalte über die Drucker oder Plotter 39 angegeben werden.With the appropriate peripherals, the modules can both be fed to the programming stage 37 in order to be loaded into a PROM or the contents can be specified via the printer or plotter 39.
Soweit die vorliegende Offenbarung Einzelheiten enthält, die durch einen Schutz aus dieser Anmeldung nicht direkt abgedeckt sind, behält sich die Anmelderin mit dem Tage der Anmeldung in der Bundesrepublik Deutschland bzw. mit dem Tage der Offenlegung der vollständigen Anmeldungsunterlagen für das Rechtsgebiet der Bundesrepublik alle Rechte der gewerblichen Nutzung der hierin offenbarten Programme selbst vor. Ohne Genehmigung der Anmelderin dürfen die Programme nicht in irgendeiner Form vervielfältigt, verbreitet oder auf Computern, Datenverarbeitungsanlagen oder in Entwicklungssystemen genutzt werden.Insofar as the present disclosure contains details that are not directly covered by a protection from this application, the applicant reserves all rights of the on the day of the application in the Federal Republic of Germany or on the day of the disclosure of the complete application documents for the legal area of the Federal Republic of Germany commercial use of the programs disclosed herein. The programs may not be reproduced, distributed or used on computers, data processing systems or in development systems in any form without the consent of the applicant.
Claims (13)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38772982A | 1982-06-14 | 1982-06-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3321131A1 true DE3321131A1 (en) | 1984-08-16 |
Family
ID=23531138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19833321131 Withdrawn DE3321131A1 (en) | 1982-06-14 | 1983-06-10 | SELF-LEARNING CALCULATOR |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPS593556A (en) |
DE (1) | DE3321131A1 (en) |
FR (1) | FR2535487B1 (en) |
GB (1) | GB2127188B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3631487A1 (en) * | 1986-09-16 | 1988-03-17 | Mettler Instrumente Ag | DEVICE, IN PARTICULAR SCALE, WITH A DISPLAY OF THE RESULTS OF SELECTED FUNCTIONAL SEQUENCES |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0640302B2 (en) * | 1984-01-30 | 1994-05-25 | 株式会社日立製作所 | Schematic / source program automatic generation method |
JPS6175932A (en) * | 1984-09-21 | 1986-04-18 | Fujitsu Ltd | Registration system for incorporation of program |
GB8606147D0 (en) * | 1986-03-12 | 1986-04-16 | Marconi Instruments Ltd | Microprocessor test equipment |
US4809170A (en) * | 1987-04-22 | 1989-02-28 | Apollo Computer, Inc. | Computer device for aiding in the development of software system |
ATE204658T1 (en) * | 1994-06-30 | 2001-09-15 | Siemens Ag | PROGRAMMING METHOD FOR A REMAINING MEMORY OF A MEMORY-PROGRAMMABLE CONTROLLER |
GB2364579A (en) | 1999-11-30 | 2002-01-30 | Sgs Thomson Microelectronics | An assembler using a descriptor file that contains information descriptive of the instruction set of a target microprocessor |
CN108268293B (en) * | 2016-12-29 | 2021-11-02 | 广东中科遥感技术有限公司 | Method for demonstrating rapid prototype of mobile APP |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2249852A1 (en) * | 1971-10-12 | 1973-04-19 | Ncr Co | COMPUTER SYSTEM |
US4204253A (en) * | 1977-03-22 | 1980-05-20 | U.S. Philips Corporation | Device for generating and correcting a user program |
US4277827A (en) * | 1979-01-02 | 1981-07-07 | Texas Instruments Incorporated | Microprocessor based system for the development and emulation of programmable calculator control read only memory software |
US4309756A (en) * | 1971-02-17 | 1982-01-05 | Beckler Robert I | Method of automatically evaluating source language logic condition sets and of compiling machine executable instructions directly therefrom |
US4330822A (en) * | 1971-09-02 | 1982-05-18 | Burroughs Corporation | Recursive system and method for binding compiled routines |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4315315A (en) * | 1971-03-09 | 1982-02-09 | The Johns Hopkins University | Graphical automatic programming |
GB1372430A (en) * | 1971-05-28 | 1974-10-30 | Burroughs Corp | Process for producing a microprogramme or a soft interpreter for a computer |
US3938103A (en) * | 1974-03-20 | 1976-02-10 | Welin Andrew M | Inherently micro programmable high level language processor |
JPS56145441A (en) * | 1980-04-10 | 1981-11-12 | Mitsubishi Electric Corp | Microcomputer development device |
EP0049176A1 (en) * | 1980-09-26 | 1982-04-07 | The Bendix Corporation | Program composing method |
-
1983
- 1983-06-07 GB GB8315523A patent/GB2127188B/en not_active Expired
- 1983-06-10 DE DE19833321131 patent/DE3321131A1/en not_active Withdrawn
- 1983-06-14 JP JP10659483A patent/JPS593556A/en active Pending
- 1983-06-14 FR FR8309816A patent/FR2535487B1/en not_active Expired
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4309756A (en) * | 1971-02-17 | 1982-01-05 | Beckler Robert I | Method of automatically evaluating source language logic condition sets and of compiling machine executable instructions directly therefrom |
US4330822A (en) * | 1971-09-02 | 1982-05-18 | Burroughs Corporation | Recursive system and method for binding compiled routines |
DE2249852A1 (en) * | 1971-10-12 | 1973-04-19 | Ncr Co | COMPUTER SYSTEM |
US4204253A (en) * | 1977-03-22 | 1980-05-20 | U.S. Philips Corporation | Device for generating and correcting a user program |
US4277827A (en) * | 1979-01-02 | 1981-07-07 | Texas Instruments Incorporated | Microprocessor based system for the development and emulation of programmable calculator control read only memory software |
Non-Patent Citations (3)
Title |
---|
DE-Z.: Elektronik, 23(1981), S. 14 * |
DE-Z.: Siemens Forschungs- u. Entwicklungs- berichte, Bd. 8 (1979), Nr. 6, S. 321-325 * |
US-Z.: Hewlett-Packard Journal, Okt. 1980, S. 3-13 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3631487A1 (en) * | 1986-09-16 | 1988-03-17 | Mettler Instrumente Ag | DEVICE, IN PARTICULAR SCALE, WITH A DISPLAY OF THE RESULTS OF SELECTED FUNCTIONAL SEQUENCES |
Also Published As
Publication number | Publication date |
---|---|
GB2127188B (en) | 1986-06-11 |
GB8315523D0 (en) | 1983-07-13 |
FR2535487A1 (en) | 1984-05-04 |
FR2535487B1 (en) | 1989-01-20 |
JPS593556A (en) | 1984-01-10 |
GB2127188A (en) | 1984-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69720821T2 (en) | Debugging system for programs with a graphical user interface | |
DE69033360T2 (en) | Simulation of selected logic circuit designs | |
DE69315576T2 (en) | METHOD AND TEST SYSTEM FOR DEVELOPING AN INTEGRATED CIRCUIT. | |
DE69704624T2 (en) | SYSTEM AND METHOD FOR DYNAMIC DATA REFERENCE IN A GENERIC DATA EXCHANGE ENVIRONMENT | |
DE202020105389U1 (en) | Front-end framework, storage medium and electronic device | |
EP1034475B1 (en) | Method for testing the system components in an object-oriented program | |
DE68915847T2 (en) | Keyboard reassignment. | |
DE69326004T2 (en) | Large capacity test apparatus | |
DE4109258A1 (en) | METHOD FOR CONVERTING HARDWARE CONFIGURATION OF A PROGRAMMABLE LINK CONTROLLER AND THE CORRESPONDING CONTROL PROGRAM FOR USE IN A SECOND PROGRAMMABLE LINK CONTROLLER | |
DE3503119A1 (en) | METHOD FOR AUTOMATICALLY GENERATING A SOURCE PROGRAM | |
DE69622161T2 (en) | Computer system with context switching and program development for it | |
EP3285165A1 (en) | Modification and simulation of the operating software of a technical system | |
DE3321131A1 (en) | SELF-LEARNING CALCULATOR | |
EP1005215B1 (en) | Method and system for editing configuration data in telecommunications systems | |
DE4104568A1 (en) | Distributed program processing for processing system - examining input and output commands to organise data flow | |
DE10041072A1 (en) | Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components | |
DE69427193T2 (en) | PROCEDURE SELECTION WITH SEVERAL INPUT POINTS | |
DE10324594A1 (en) | Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment | |
DE69513463T2 (en) | INPUT / OUTPUT EMULATION SYSTEM | |
EP1469320A1 (en) | Method for generating tester controls | |
DE69322800T2 (en) | Procedure for performance improvement in an automatic test system | |
EP1505399B1 (en) | Method for Generating Test Data for functional test of data processing circuits | |
DE102016115314A1 (en) | Modifying and simulating the operating software of a technical system | |
EP4147121B1 (en) | Method for creating and executing a control program for controlling an automation system, and automation system | |
DE102019214273A1 (en) | System and method for providing a digital replica of a plant and a corresponding computer program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 9/44 |
|
8139 | Disposal/non-payment of the annual fee |