Stand: 13. Februar 2021
über dieses Dokumentwas es hierin gibt
wo man die neuste Version bekommt
wie man den Verfasser kontaktiert
welche gesetzlichen Einschränkungen es gibtLizenzlosigkeit
Verfasserschutz
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen
allgemeine InformationenZweck
Notwendigkeit
Dateinamens-Endung
Zeichenkodierung
die DetailsBibliothekenbeschreibungAllgemeines
Wert
class namesNotwendigkeitfunctions
Schlüssel
WertNotwendigkeitpath and file name without extension
Schlüssel
Wert
FunktionsbeschreibungAllgemeines
Wert
name in the raw data fileNotwendigkeitnames in the source code files
Schlüssel
WertNotwendigkeitparameters
Schlüssel
WertNotwendigkeit
Schlüssel
Wert
from the exporter to the importerNotwendigkeitfrom the importer to the exporter
Schlüssel
Wert
ParameterbeschreibungAllgemeines
Wert
lengthNotwendigkeit
Schlüssel
Wert
storageNotwendigkeitunit
Schlüssel
WertNotwendigkeit
Schlüssel
WertNotwendigkeit
Schlüssel
Wert
ParameterbeschreibungAllgemeines
Wert
character encodingNotwendigkeitentries
Schlüssel
WertNotwendigkeithanding over
Schlüssel
Wert
EintragsbeschreibungAllgemeines
Wert
character encodingNotwendigkeithanding over
Schlüssel
WertNotwendigkeitkey
Schlüssel
WertNotwendigkeitlength
Schlüssel
WertNotwendigkeitsize
Schlüssel
Wert
storageNotwendigkeitunit
Schlüssel
WertNotwendigkeit
Schlüssel
WertNotwendigkeittype
Schlüssel
WertNotwendigkeit
Schlüssel
WertNotwendigkeitlength
Schlüssel
WertNotwendigkeitnames in the source code files
Schlüssel
Wert
storageNotwendigkeitunit
Schlüssel
WertNotwendigkeit
Schlüssel
WertNotwendigkeitstorage
Schlüssel
WertNotwendigkeittype
Schlüssel
WertNotwendigkeit
Schlüssel
WertNotwendigkeit
Schlüssel
Wert
weiteres Material zu diesem ThemaDokumente
Sonstiges
Aufnahme von weiteren Materialien
was es hierin gibt
Dieses Dokument
- beschreibt Import-Definitionsdateien für die Programmiersprache "Minicode".
Alle anderen Informationen über Minicode, inklusiv den anderen Dateitypen, sind in separaten Dokumenten untergebracht. Diese sind im Kapitel "weiteres Material zu diesem Thema - Dokumente" aufgelistet.
wo man die neuste Version bekommt
Derzeit nutze ich OnTheServer.de/Downloads/ um neue Versionen zugänglich zu machen. Sie müsste irgendwo dort in den Unterverzeichnissen sein; das kann sich hin und wieder ein bischen ändern.
Dort gibt es vielleicht auch dieses Dokument in anderen Sprachen.
Die Versions-Angabe von diesem Dokument steht oben rechts ("Stand: ...").
wie man den Verfasser kontaktiert
Der Verfasser von diesem Dokument kann mit der Hilfe von einer elektronischen Nachricht kontaktiert werden. Das hierfür eingerichtete Postfach ist mit der Hilfe von der folgenden Adresse erreichbar:Kontakt@On(entferne mich)TheServer.de
welche gesetzlichen Einschränkungen es gibt
Lizenzlosigkeit
Dieses Dokument
- ist an keine Lizenz gebunden.
- unterliegt nicht den Einschränkungen durch das Urhebergesetz.
- soll allgemeinfrei (public domain) behandelt werden. Also so, als wenn es sich um ein Eigentum von der Allgemeinheit handelt.
Im Übrigen soll alles, was man auf OnTheServer.de und den Subdomains öffentlich zugänglich findet, entsprechend behandelt werden.
Es gibt auf OnTheServer.de allerdings eine Ausnahme:Ich lege gelegentlich im Verzeichnis "OnTheServer.de/temp/" urheberrechtlich geschütztes Material ab.
Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass das (ursprüngliche) Dokument an eine Lizenz gebunden wäre.
Verfasserschutz
Es ist nicht gestattet, auf irreführendeweise vorzutäuschen, dass man der (ursprüngliche) Verfasser vom Dokument wäre. Der (ursprüngliche) Verfasser muss jedoch nicht namentlich genannt werden.
Vorbehalt für zusätzliche Einschränkungen für zukünftige Versionen
Ich (der ursprüngliche Verfasser) behalte die Möglichkeit, Einschränkungen füraufzuerlegen. Von den Einschränkungen wären lediglich neue Versionen betroffen. Was bisher veröffentlicht wurde, erhält keine weiteren Einschränkungen.
- die Veränderung oder/und
- die Verbreitung
Von diesem Recht werde ich hoffentlich nie gebrauch machen müssen.
Zweck
Die Import-Definitionsdateien sind ein Hilfsmittel, um Bibliotheken (also) nutzen zu können.
- "*.dll"-Dateien in Windows und
- "*.so"-Dateien in Linux
Mit der Hilfe von einer solchen Datei werden die maschinennahen Spezifikationen definiert, damit Minicode korrekt mit der Bibliothek kommunizieren kann. Dies heißt vor allem, dass Funktionen korrekt aufgerufen werden können und dabei die Parameter in der notwendigen Form und Reihenfolge übergeben werden können.
Notwendigkeit
Für jede Bibliothek, aus welcher etwas importiert werden soll, ist 1 separate Import-Definitionsdatei notwendig. In 1 Import-Definitionsdatei können allerdings durchaus mehrere Funktionen beschrieben werden, solange diese alle jeweils ein Bestandteil von der selben Bibliothek sind.
Dateinamens-Endung
Die vorgeschlagene Dateinamens-Endung heißt "mico-imde". "kernel32.mico-imde" ist ein Beispiel für einen vollständigen Dateinamen.
Die Abkürzung steht für "Minicode - import definition file".
Zeichenkodierung
Die vorgeschlagene Zeichenkodierung heißt "UTF-8".
Die Abkürzung steht für "Unicode Transformation Format - 8 bit (per part)".
Der in Klammern stehende Teil gehört nicht zur offiziellen Bezeichnung.
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument über Zeichenkodierungen aufgelistet, in welchem unter anderem diese Zeichenkodierung beschrieben ist.
Bibliothekenbeschreibung
Allgemeines
Bezeichnung: Bibliothekenbeschreibung Notwendigkeit: Für jede Import-Definitionsdatei und somit für jede Bibliothek, aus welcher etwas importiert werden soll, ist 1 Bibliothekenbeschreibung notwendig.
In jeder Datei kann nur 1 Bibliothekenbeschreibung vorhanden sein.
Wert
Beispiel: <
"class names" : <
...
>
"functions" : <
...
>
"path and file name without extension" : "libraries/individual_encryption"
>Beschreibung: Mit der Hilfe von dieser Liste werden die notwendigen Angaben für den Import von 1 Bibliothek gemacht. Variablentyp: Liste
class names
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Wenndann
- dieser Eintrag nicht angegeben wird,
- wird für den Namen von der Klasse der Dateiname von der Bibliothek übernommen. Allerdings wird die Dateinamens-Endung nicht in den Klassennamen übernommen.
Wenn also beispielsweisedann
- die Bibliothek "individual_encryption.dll" importiert wird und
- kein Klassenname angegeben ist,
- wird die Bibliothek mit der Hilfe von der Klasse "individual_encryption" bereitgestellt.
Schlüssel
Bezeichnung: class names Variablentyp: Zeichenkette
Wert
Beispiel: <
"individual_encryption"
"individuelle_Verschlüsselung"
>Beschreibung: Mit der Hilfe von dieser Angabe werden die Namen von der Klasse definiert, welche die aus der Bibliothek importierten Funktionen als Methoden bereitstellen soll.
Jeder Eintrag von der Liste dient jeweils für die Angabe von 1 Namen. Für jeden Eintrag wird der Variablentyp "Zeichenkette" erwartet.
Die Klasse kann mit der Hilfe von Quellcode benutzt werden, so als hätte sie der Programmierer mit der Hilfe von Quellcode definiert.Variablentyp: Liste
functions
Notwendigkeit
Wenn dann
- aus der Bibliothek mindestens 1 Funktion importiert werden soll,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: functions Variablentyp: Zeichenkette
Wert
Beispiel: <
<
...
>
<
...
>
<
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden Funktionsbeschreibungen aufgelistet.
Jeder Eintrag in dieser Liste ist eine Funktionsbeschreibung, welche eine Funktion definiert, welche importiert werden soll.Variablentyp: Liste
Funktionsbeschreibung
Allgemeines
Bezeichnung: Funktionsbeschreibung Notwendigkeit: Für jede Funktion, welche aus der Bibliothek importiert werden soll, ist 1 Funktionsbeschreibung notwendig.
Wert
Beispiel: <
"name in the raw data file" : "decode"
"names in the source code files" : <
"decode"
"dekodieren"
>
"parameters" : <
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden die notwendigen Angaben für den Import von 1 Funktion gemacht. Variablentyp: Liste
name in the raw data file
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: name in the raw data file Variablentyp: Zeichenkette
Wert
Beispiel: decode Beschreibung: Mit der Hilfe von dieser Angabe wird der Name von der Funktion definiert, welche aus der Bibliothek importierte werden soll.
Als Name muss der selbe Name angegeben werden, wie in der Bibliothek gespeichert ist, um die Funktion anhand vom Namen zu exportieren.Variablentyp: Zeichenkette
names in the source code files
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Wenndann
- dieser Eintrag nicht angegeben wird,
- wird für den Namen von der Methode der Funktionsname übernommen, so wie er in der Bibliothek gespeichert ist.
Wenn also beispielsweisedann
- die Funktion "decode" importiert wird und
- kein Methodenname angegeben wird,
- wird die Funktion mit der Hilfe von der Methode "decode" bereitgestellt.
Schlüssel
Bezeichnung: names in the source code files Variablentyp: Zeichenkette
Wert
Beispiel: <
"decode"
"dekodieren"
>Beschreibung: Mit der Hilfe von dieser Angabe werden die Namen von der Methode definiert, welche die aus der Bibliothek importierte Funktion bereitstellen soll.
Jeder Eintrag von der Liste dient jeweils für die Angabe von 1 Namen. Für jeden Eintrag wird der Variablentyp "Zeichenkette" erwartet.
Die Methode kann mit der Hilfe von Quellcode benutzt werden, so als hätte sie der Programmierer mit der Hilfe von Quellcode definiert.Variablentyp: Liste
parameters
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: parameters Variablentyp: Zeichenkette
Wert
Beispiel: <
"from the exporter to the importer" : <
...
>
"from the importer to the exporter" : <
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden Unterlisten definiert, in welchen Parameter definiert werden. Variablentyp: Liste
from the exporter to the importer
Notwendigkeit
Wenn dann
- die zu importierende Funktion mindestens 1 Parameterwert zurückgibt, welcher durch den Exporteur definiert wird und welcher
- dem Importeur übergeben werden muss, oder
- vom Importeur vom Stapel gelöscht werden muss,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: from the exporter to the importer Variablentyp: Zeichenkette
Wert
Beispiel: <
<
...
>
<
...
>
<
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden Parameterbeschreibungen aufgelistet.
Jeder Eintrag in dieser Liste ist eine Parameterbeschreibung, welche einen Parameter definiert, dessen Wert durch den Exporteur definiert wird und welcher
- dem Importeur übergeben werden muss, oder
- vom Importeur vom Stapel gelöscht werden muss.
Die Reihenfolge, in welcher diese Parameterbeschreibungen in dieser Liste auftauchen, bestimmt,
- in welcher Reihenfolge die Parameter im Quellcode bereitgestellt werden und
- in welcher Reihenfolge die Parameterwerte vom Stapel genommen werden sollen, sofern sie vom Stapel genommen werden sollen.
Variablentyp: Liste
Parameterbeschreibung
Allgemeines
Bezeichnung: Parameterbeschreibung Notwendigkeit: Für jeden Parameter, dessen Wert durch den Exporteur definiert wird und welcher ist 1 Parameterbeschreibung notwendig.
- dem Importeur übergeben werden muss, oder
- vom Importeur vom Stapel gelöscht werden muss,
Wert
Beispiel: <
"handing over" : "value"
"names in the source code files" : <
...
>
"storage" : "eax"
"type" : 0
>Beschreibung: siehe hier Variablentyp: Liste
length
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert
angegeben ist,
- "4" (Rohdatenkette) oder
- "6" (Zeichenkette)
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: length Variablentyp: Zeichenkette
Wert
Beispiel: <
"storage" : "Ziel_-_Länge_in_Byte"
"unit" : "bytes"
>Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, wie die importierte Funktion die Länge von der bekannt macht.
- Rohdatenkette oder
- Zeichenkette
Variablentyp: Liste
storage
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: storage Variablentyp: Zeichenkette
Wert
Beispiel: "Ziel_-_Länge_in_Byte" Beschreibung: Mit der Hilfe von dieser Angabe wird
- entweder ein anderer Parameter angegeben, mit deren Hilfe der Aufrufer die Länge als einen Wert vom Variablentyp "Ganzzahl" angibt.
In diesem Fall ist dieser andere Parameter mit der Hilfe von Minicode-Quellcode nicht verfügbar.- oder durch den Wert "zero termination" angegeben, dass die Zeichenkette durch ein weiteres Zeichen abgeschlossen ist, von welchem alle Bits auf "0" gesetzt sind und dass anhand von diesem Abschluss-Zeichen die Länge ermittelt werden soll.
Variablentyp: Zeichenkette
unit
Notwendigkeit
Wenn dann
- beim Eintrag "storage" der Name von einem Parameter angegeben ist,
Ansonsten
- muss dieser Eintrag existieren.
- darf dieser Eintrag nicht existieren.
Schlüssel
Bezeichnung: unit Variablentyp: Zeichenkette
Wert
Beispiel: "bytes" Beschreibung: Mit der Hilfe von dieser Angabe wird die Einheit von der Länge angegeben.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Byte bytes Zeichen characters Variablentyp: Zeichenkette
from the importer to the exporter
Notwendigkeit
Wenn dann
- die zu importierende Funktion mindestens 1 Parameterwert fordert, welcher durch den Importeur definiert werden muss und dem Exporteur übergeben werden muss,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: from the importer to the exporter Variablentyp: Zeichenkette
Wert
Beispiel: <
<
...
>
<
...
>
<
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden Parameterbeschreibungen aufgelistet.
Jeder Eintrag in dieser Liste ist eine Parameterbeschreibung, die einen Parameter definiert, dessen Wert durch den Importeur definiert werden muss und dem Exporteur übergeben werden muss.
Die Reihenfolge, in welcher diese Parameterbeschreibungen in dieser Liste auftauchen, bestimmt,Die umgekehrte Reihenfolge von der Reihenfolge in dieser Liste, bestimmt,
- in welcher Reihenfolge die Parameter im Quellcode definiert werden müssen.
- in welcher Reihenfolge die Parameterwerte auf den Stapel geladen werden sollen, sofern sie auf den Stapel geladen werden sollen.
Variablentyp: Liste
Parameterbeschreibung
Allgemeines
Bezeichnung: Parameterbeschreibung Notwendigkeit: Für jeden Parameter, dessen Wert durch den Importeur definiert werden muss und dem Exporteur übergeben werden muss, ist 1 Parameterbeschreibung notwendig.
Wert
Beispiel: <
"character encoding" : "UTF-8"
"handing over" : "address"
"length" : <
...
>
"names in the source code files" : <
"Nutzdaten_-_Adresse"
"Nutzdaten_-_Adresse_-_Offset_in_Byte"
>
"storage" : "stack"
"type" : 6
>Beschreibung: Mit der Hilfe von dieser Liste werden die notwendigen Angaben für die Übergabe von 1 Parameterwert gemacht. Variablentyp: Liste
character encoding
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert "6" (Zeichenkette) angegeben ist,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: character encoding Variablentyp: Zeichenkette
Wert
Beispiel: "UTF-8" Beschreibung: Eine Zeichenkette, welche mit der Hilfe von Minicode-Quellcode verwendet werden kann, wird nicht zwangsweise direkt an die importierte Funktion übergeben, sondern es wird gegebenenfalls zuerst eine neue Zeichenkette erzeugt, welche mit einer anderen Zeichenkodierung kodiert ist.
Mit der Hilfe von dieser Angabe wird definiert, mit welcher Zeichenkodierung die Zeichenkette kodiert werden soll, welche der importieren Funktion übergeben werden soll.
Minicode verwendet in der Regel intern die Zeichenkodierung "UCS-2LE". Wenndann
- diese Zeichenkodierung angegeben wird,
- ist keine Umwandlung erforderlich.
Wenndann
- die importierte Funktion aus der Windows-API stammt
- kann
- für die "ASCII"-Variante die Zeichenkodierung "ASCII-8" verwendet werden, und
- für die "Unicode"-Variante die Zeichenkodierung "UCS-2LE" verwendet werden.
- erzeugt die "ASCII"-Variante, im Gegensatz zur "Unicode"-Variante,
durch zusätzliche Umwandlung(en) einen Geschwindigkeitsnachteil.
- sowohl in Minicode,
- als auch in der Windows-API,
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument mit allgemeinen Informationen über Minicode aufgelistet. In diesem existiert das Kapitel "die Details von Minicode - Zeichenkodierungen". In diesem Kapitel sind die unterstützten Zeichenkodierungen aufgelistet und somit die zulässigen Werte für diesen Eintrag aufgelistet.
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist auch ein Dokument aufgelistet, welches die unterstützten Zeichenkodierungen beschreibt.Variablentyp: Zeichenkette
entries
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert "2" (Liste) angegeben ist,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: entries Variablentyp: Zeichenkette
Wert
Beispiel: <
<
...
>
<
...
>
<
...
>
>Beschreibung: Mit der Hilfe von dieser Liste werden Eintragsbeschreibungen aufgelistet.
Jeder Eintrag in dieser Liste ist eine Eintragsbeschreibung, die einen Eintrag vom Datensatz definiert.
Die Reihenfolge, in welche diese Eintragsbeschreibungen in dieser Liste auftauchen, entscheidet darüber, in welcher Reihenfolge die Einträge im Datensatz definiert werden.
Wenndann
- für die Einträge jeweils der Eintrag "key" definiert wird,
Ansonsten
- werden die Einträge in der Liste, die mit der Hilfe von Quellcode definiert wurde, anhand von ihrem Schlüssel identifiziert, um die gewünschte Reihenfolge im Datensatz herzustellen.
- wird der Index von jedem Eintrag in der Liste, die mit der Hilfe von Quellcode definiert wurde, verwendet, um die gewünschte Reihenfolge im Datensatz herzustellen. Das heißt, dass dann
- der erste Eintrag von der Liste, die mit der Hilfe von Quellcode definiert wurde, für den ersten Eintrag im Datensatz verwendet wird und
- der letzte Eintrag von der Liste, die mit der Hilfe von Quellcode definiert wurde, für den letzten Eintrag im Datensatz verwendet wird.
Variablentyp: Liste
Eintragsbeschreibung
Allgemeines
Bezeichnung: Eintragsbeschreibung Notwendigkeit: Für jeden Eintrag, den der Datensatz umfassen soll, ist 1 Eintragsbeschreibung notwendig.
Wert
Beispiel: <
"handing over" : "value"
"key" : "year"
"size" : 2
"type" : 0
>Beschreibung: Mit der Hilfe von dieser Liste werden die notwendigen Angaben für 1 Eintrag vom Datensatz gemacht. Variablentyp: Liste
character encoding
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert "6" (Zeichenkette) angegeben ist,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: character encoding Variablentyp: Zeichenkette
Wert
Beispiel: "UTF-8" Beschreibung: Eine Zeichenkette, die mit der Hilfe von Minicode-Quellcode verwendet werden kann, wird nicht zwangsweise direkt an die importierte Funktion übergeben, sondern es wird gegebenenfalls zuerst eine neue Zeichenkette erzeugt, die mit einer anderen Zeichenkodierung kodiert ist.
Mit der Hilfe von dieser Angabe wird definiert, mit welcher Zeichenkodierung die Zeichenkette kodiert werden soll, welche der importieren Funktion übergeben werden soll.
Minicode verwendet in der Regel intern die Zeichenkodierung "UCS-2LE". Wenndann
- diese Zeichenkodierung angegeben wird,
- ist keine Umwandlung erforderlich.
Wenndann
- die importierte Funktion aus der Windows-API stammt
- kann
- für die "ASCII"-Variante die Zeichenkodierung "ASCII-8" verwendet werden, und
- für die "Unicode"-Variante die Zeichenkodierung "UCS-2LE" verwendet werden.
- erzeugt die "ASCII"-Variante, im Gegensatz zur "Unicode"-Variante,
durch zusätzliche Umwandlung(en) einen Geschwindigkeitsnachteil.
- sowohl in Minicode,
- als auch in der Windows-API,
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist ein Dokument mit allgemeinen Informationen über Minicode aufgelistet. In diesem existiert das Kapitel "die Details von Minicode - Zeichenkodierungen". In diesem Kapitel sind die unterstützten Zeichenkodierungen aufgelistet und somit die zulässigen Werte für diesen Eintrag aufgelistet.
Im Kapitel "weiteres Material zu diesem Thema - Dokumente" ist auch ein Dokument aufgelistet, welches die unterstützten Zeichenkodierungen beschreibt.Variablentyp: Zeichenkette
handing over
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert für eine Klammer angegeben ist,
Ansonsten
- darf dieser Eintrag nicht existieren.
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: handing over Variablentyp: Zeichenkette
Wert
Beispiel: value Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, ob übergeben werden soll.
- der Wert vom Eintrag oder
- die Adresse vom Wert vom Eintrag
Es sind folgende Werte zulässig:
Bedeutung: Wert: Der Wert vom Eintrag wird indirekt übergeben, indem die Adresse in die vorgesehene Speicherzelle gespeichert wird, welche angibt, wo der Wert im Daten-Segment von der Anwendung beginnt. Es handelt sich bei dieser Adresse um einen Offset vom Anfang vom Segment. Es wird jenes Datensegment verwendet, dessen Identifikationskennung im Segmentregister "data segment "d" selector" ("ds") gespeichert ist.
Dies ist bei allen Werten für den Eintrag "type" möglich.address Der Wert vom Eintrag wird direkt übergeben, indem der Wert in die vorgesehene Speicherzelle gespeichert wird.
Dies ist allerdings nur bei folgenden Werten für den Eintrag "type" möglich:
- "0" (Ganzzahl)
value Variablentyp: Zeichenkette
key
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Schlüssel
Bezeichnung: key Variablentyp: Zeichenkette
Wert
Beispiel: year Beschreibung: Mit der Hilfe von dieser Angabe wird der Schlüssel in der Liste angegeben, die mit der Hilfe von Quellcode definiert wird.
Wenndann
- ein solcher "key"-Eintrag angegeben wird,
Ansonsten
- muss bei allen Einträgen ein solcher "key"-Eintrag angegeben werden und
- werden die Einträge in der Liste, die mit der Hilfe von Quellcode definiert wurde, anhand von ihrem Schlüssel identifiziert, um die gewünschte Reihenfolge im Datensatz herzustellen.
- wird der Index von jedem Eintrag in der Liste, die mit der Hilfe von Quellcode definiert wurde, verwendet, um die gewünschte Reihenfolge im Datensatz herzustellen. Das heißt, dass dann
- der erste Eintrag von der Liste, die mit der Hilfe von Quellcode definiert wurde, für den ersten Eintrag im Datensatz verwendet wird und
- der letzte Eintrag von der Liste, die mit der Hilfe von Quellcode definiert wurde, für den letzten Eintrag im Datensatz verwendet wird.
Variablentyp: Zeichenkette
length
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Wenndann
- beim Eintrag "type" der Wert
angegeben ist,
- "4" (Rohdatenkette) oder
- "6" (Zeichenkette)
Ansonsten
- darf dieser Eintrag existieren.
- darf dieser Eintrag nicht existieren.
Schlüssel
Bezeichnung: length Variablentyp: Zeichenkette
Wert
Beispiel: <
"storage" : "Quelle_-_Länge_in_Byte"
"unit" : "bytes"
>Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, wie die importierte Funktion die Länge von der Zeichenkette erhält. Variablentyp: Liste
storage
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: storage Variablentyp: Zeichenkette
Wert
Beispiel: "Quelle_-_Länge_in_Byte" Beschreibung: Mit der Hilfe von dieser Angabe wird
- entweder der "key"-Wert von einem anderen Eintrag angegeben, mit deren Hilfe Minicode die Länge als einen Wert vom Variablentyp "Ganzzahl" angeben soll.
In diesem Fall wird der Wert von diesem anderen Eintrag nicht gelesen.- oder durch den Wert "zero termination" angegeben, dass Minicode die Zeichenkette durch ein weiteres Zeichen abschließen soll, von welchem alle Bits auf "0" gesetzt sind.
Variablentyp: Zeichenkette
unit
Notwendigkeit
Wenn dann
- beim Eintrag "storage" der "key"-Wert von einem Eintrag angegeben ist,
Ansonsten
- muss dieser Eintrag existieren.
- darf dieser Eintrag nicht existieren.
Schlüssel
Bezeichnung: unit Variablentyp: Zeichenkette
Wert
Beispiel: "bytes" Beschreibung: Mit der Hilfe von dieser Angabe wird die Einheit von der Länge angegeben.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Byte bytes Zeichen characters Variablentyp: Zeichenkette
size
Notwendigkeit
Wenn dann
- beim Eintrag "handing over" der Wert "value" angegeben ist, und
- beim Eintrag "type" der Wert "0" (Ganzzahl) angegeben ist,
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: size Variablentyp: Zeichenkette
Wert
Beispiel: 2 Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, wieviele von den niederwertigsten Bytes von der Ganzzahl für den Wert im Datensatz verwendet werden sollen.
Es sind folgende Werte zulässig:
- 1
- 2
- 4
- 8
- 16
- 32
- 64
- 128
- 256
Variablentyp: Ganzzahl
type
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: type Variablentyp: Zeichenkette
Wert
Beispiel: 0 Beschreibung: Mit der Hilfe von dieser Angabe wird der Typ von dem Wert definiert, welcher in Minicode verwendet werden soll.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Der Variablentyp "Ganzzahl" soll verwendet werden.
Dieser Variablentyp ist der Variablentyp "Ganzzahl mit Vorzeichen" von der x86-CPU-Architektur.0 Der Variablentyp "Rohdatenkette" soll verwendet werden. 4 Der Variablentyp "Zeichenkette" soll verwendet werden. 6 Variablentyp: Ganzzahl
handing over
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert für eine Klammer angegeben ist,
Ansonsten
- darf dieser Eintrag nicht existieren.
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: handing over Variablentyp: Zeichenkette
Wert
Beispiel: address Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, wie der Parameterwert übergeben werden soll.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Der Wert vom Eintrag wird indirekt übergeben, indem die Adresse in die vorgesehene Speicherzelle gespeichert wird, welche angibt, wo der Wert im Daten-Segment von der Anwendung beginnt. Es handelt sich bei dieser Adresse um einen Offset vom Anfang vom Segment. Es wird jenes Datensegment verwendet, dessen Identifikationskennung im Segmentregister "data segment "d" selector" ("ds") gespeichert ist.
Dies ist bei allen Werten für den Eintrag "type" möglich.address Der Parameterwert wird direkt übergeben, indem der Parameterwert in die vorgesehene Speicherzelle gespeichert wird.
Dies ist allerdings nur bei folgenden Werten für den Eintrag "type" möglich:
- "0" (Ganzzahl)
value Variablentyp: Zeichenkette
length
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Wenndann
- beim Eintrag "type" der Wert
angegeben ist,
- "4" (Rohdatenkette) oder
- "6" (Zeichenkette)
Ansonsten
- darf dieser Eintrag existieren.
- darf dieser Eintrag nicht existieren.
Schlüssel
Bezeichnung: length Variablentyp: Zeichenkette
Wert
Beispiel: <
"storage" : "Quelle_-_Länge_in_Byte"
"unit" : "bytes"
>Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, wie die importierte Funktion die Länge von der Zeichenkette erhält. Variablentyp: Liste
storage
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: storage Variablentyp: Zeichenkette
Wert
Beispiel: "Quelle_-_Länge_in_Byte" Beschreibung: Mit der Hilfe von dieser Angabe wird
- entweder ein anderer Parameter angegeben, mit deren Hilfe Minicode die Länge als einen Wert vom Variablentyp "Ganzzahl" angeben soll.
In diesem Fall erhält dieser andere Parameter einen Standardwert, sodass für diesen anderen Parameter im Minicode-Quellcode kein Wert übergeben werden muss.- oder durch den Wert "zero termination" angegeben, dass Minicode die Zeichenkette durch ein weiteres Zeichen abschließen soll, von welchem alle Bits auf "0" gesetzt sind.
Variablentyp: Zeichenkette
unit
Notwendigkeit
Wenn dann
- beim Eintrag "storage" der Name von einem Parameter angegeben ist,
Ansonsten
- muss dieser Eintrag existieren.
- darf dieser Eintrag nicht existieren.
Schlüssel
Bezeichnung: unit Variablentyp: Zeichenkette
Wert
Beispiel: "bytes" Beschreibung: Mit der Hilfe von dieser Angabe wird die Einheit von der Länge angegeben.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Byte bytes Zeichen characters Variablentyp: Zeichenkette
names in the source code files
Notwendigkeit
Dieser Eintrag ist nicht notwendig.
Schlüssel
Bezeichnung: names in the source code files Variablentyp: Zeichenkette
Wert
Beispiel: <
"Nutzdaten_-_Adresse"
"Nutzdaten_-_Adresse_-_Offset_in_Byte"
>Beschreibung: Mit der Hilfe von dieser Angabe werden die Namen vom Parameter definiert.
Jeder Eintrag von der Liste dient jeweils für die Angabe von 1 Namen. Für jeden Eintrag wird der Variablentyp "Zeichenkette" erwartet.
Durch die Angabe von einem Namen kann eventuell bei der Fehlersuche eine etwas wertvollere Fehlermeldung generiert werden.Variablentyp: Liste
storage
Notwendigkeit
Wenn dann
- beim Eintrag "type" der Wert für eine Klammer angegeben ist,
Ansonsten
- darf dieser Eintrag nicht existieren.
- muss dieser Eintrag existieren.
Schlüssel
Bezeichnung: storage Variablentyp: Zeichenkette
Wert
Beispiel: eax Beschreibung: Mit der Hilfe von dieser Angabe wird definiert, welche Speicherzelle für die Übergabe vom Parameterwert verwendet werden soll.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Das "2 Byte"-große Allzweckregister "accumulator" ("ax") soll verwendet werden. ax Das "1 Byte"-große Allzweckregister "accumulator high byte" ("ah") soll verwendet werden. ah Das "1 Byte"-große Allzweckregister "accumulator low byte" ("al") soll verwendet werden. al Das "2 Byte"-große Allzweckregister "base" ("bx") soll verwendet werden. bx Das "1 Byte"-große Allzweckregister "base high byte" ("bh") soll verwendet werden. bh Das "1 Byte"-große Allzweckregister "base low byte" ("bl") soll verwendet werden. bl Das "2 Byte"-große Allzweckregister "counter" ("cx") soll verwendet werden. cx Das "1 Byte"-große Allzweckregister "counter high byte" ("ch") soll verwendet werden. ch Das "1 Byte"-große Allzweckregister "counter low byte" ("cl") soll verwendet werden. cl Das "2 Byte"-große Allzweckregister "data" ("dx") soll verwendet werden. dx Das "1 Byte"-große Allzweckregister "data high byte" ("dh") soll verwendet werden. dh Das "1 Byte"-große Allzweckregister "data low byte" ("dl") soll verwendet werden. dl Das "4 Byte"-große Allzweckregister "extended accumulator" ("eax") soll verwendet werden. eax Das "4 Byte"-große Allzweckregister "extended base" ("ebx") soll verwendet werden. ebx Das "4 Byte"-große Stapelregister "extended base pointer" ("ebp") soll verwendet werden. ebp Das "4 Byte"-große Allzweckregister "extended counter" ("ecx") soll verwendet werden. ecx Das "4 Byte"-große Allzweckregister "extended data" ("edx") soll verwendet werden. edx Das "4 Byte"-große Zeigerregister "extended destination index" ("edi") soll verwendet werden. edi Das "4 Byte"-große Zeigerregister "extended source index" ("esi") soll verwendet werden. esi Das "4 Byte"-große Stapelregister "extended stack pointer" ("esp") soll verwendet werden. esp Der Stapel soll verwendet werden. stack Variablentyp: Zeichenkette
type
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: type Variablentyp: Zeichenkette
Wert
Beispiel: character string Beschreibung: Mit der Hilfe von dieser Angabe wird der Variablentyp von dem Wert definiert, welcher in Minicode verwendet werden soll.
Es sind folgende Werte zulässig:
Bedeutung: Wert: Der Variablentyp "Ganzzahl" soll verwendet werden.
Dieser Variablentyp ist der Variablentyp "Ganzzahl mit Vorzeichen" von der x86-CPU-Architektur.0 Der Variablentyp "Liste" soll verwendet werden.
Hierfür werden die Werte von der Liste verwendet, die in Minicode definiert wurde, um daraus einen Datensatz im linearen Speicher vom Programm zu erzeugen.
Wenn in Minicode in der Liste Schlüssel angegeben werden, dann können diese benutzt werden, um die Reihenfolge von den einzelnen Einträgen im Datensatz zu bestimmen. Andernfalls werden die Indexe von den Einträgen von der Liste verwendet, um die Reihenfolge von den Einträgen im Datensatz zu bestimmen.
Die Schlüssel von den Einträgen in der Liste werden zu keinem Bestandteil vom Datensatz.
Nachdem die Funktion aufgerufen wurde und durchlaufen ist, werden die Werte aus dem Datensatz verwendet, um die Liste in Minicode zu aktualisieren.2 Der Variablentyp "Rohdatenkette" soll verwendet werden. 4 Der Variablentyp "Zeichenkette" soll verwendet werden. 6 Einge eckige Klammer ("[" oder "]") soll verwendet werden. 10 Einge geschweifte Klammer ("{" oder "}") soll verwendet werden. 11 Einge runde Klammer ("(" oder ")") soll verwendet werden. 12 Variablentyp: Ganzzahl
path and file name without extension
Notwendigkeit
Dieser Eintrag ist notwendig.
Schlüssel
Bezeichnung: path and file name without extension Variablentyp: Zeichenkette
Wert
Beispiel: libraries/individual_encryption Beschreibung: Mit der Hilfe von dieser Angabe wird von der Bibliothek definiert, aus welcher mindestens 1 Funktion importiert werden soll.
- der Pfad und
- der Dateiname
müssen allerdings weggelassen werden. Es wird davon ausgegangen, dass der Dateiname die Dateinamensendung hat, welche in dem Betriebssystem üblich ist, für welches das Projekt kompiliert wird.
- Der Punkt (".") und
- die Dateinamens-Endung
Die Pfadangabe kannsein, so wie er gültig ist, wenn die kompilierte Datei ausgeführt wird.
- absolut oder
- relativ zur kompilierten Datei
Die zu importierende Bibliothek wird während dem Kompilieren nicht benötigt und muss daher nicht existieren. Diese Pfadangabe muss aber dann gültig sein, wenn die kompilierte Datei ausgeführt wird.Variablentyp: Zeichenkette
Dokumente
Name vom Sprache: Umfang vom Inhalt: Weblink: Autor: Dokument: Minicode - allgemeine Informationen deutsch
- enthält allgemeine Informationen über die Programmiersprache "Minicode"
OnTheServer.de/Downloads/ Minicode - Export-Definitionsdateien
- beschreibt Export-Definitionsdateien für die Programmiersprache "Minicode"
Minicode - Klasse - Ganzzahl
- beschreibt die Klasse "Ganzzahl" für die Programmiersprache "Minicode"
Minicode - Klasse - Kommazahl
- beschreibt die Klasse "Kommazahl" für die Programmiersprache "Minicode"
Minicode - Klasse - Liste
- beschreibt die Klasse "Liste" für die Programmiersprache "Minicode"
Minicode - Klasse - Nichtigkeitsangabe
- beschreibt die Klasse "Nichtigkeitsangabe" für die Programmiersprache "Minicode"
Minicode - Klasse - Rohdatenkette
- beschreibt die Klasse "Rohdatenkette" für die Programmiersprache "Minicode"
Minicode - Klasse - Wahrheitsangabe
- beschreibt die Klasse "Wahrheitsangabe" für die Programmiersprache "Minicode"
Minicode - Klasse - Zeichenkette
- beschreibt die Klasse "Zeichenkette" für die Programmiersprache "Minicode"
Minicode - Kompiler-Konfigurationsdateien
- beschreibt Kompiler-Konfigurationsdateien für die Programmiersprache "Minicode"
- zeigt, welche Konfigurationsmöglichkeiten es für den Kompiler gibt
Minicode - Quellcode-Dateien
- beschreibt Quellcode-Dateien für die Programmiersprache "Minicode"
Zeichenkodierungen
- beschreibt verschiedene Zeichenkodierungen
Sonstiges
Name vom Beschreibung: Sprache: Weblink: Autor: Material: Beispiele für Import-Definitionsdateien Bei den Bibliotheken befinden sich Beispiele für Import-Definitionsdateien. Für fast jede Bibliothek ist die entsprechende Import-Definitionsdatei vorhanden, welche entsprechend der Dokumentation über die Bibliothek die maschinennahen Definitionen für eine korrekte Kommunikation mit der Bibliothek enthält. Minicode OnTheServer.de/Downloads/
Aufnahme von weiteren Materialien
Wenndann
- Sie weitere Materialien zu diesem Thema haben, von welchen Sie wollen, dass sie in diese Auflistungen aufgenommen werden,
- können Sie mir gerne die Materialien oder einen Link zu ihnen zusenden.
Sie dürfen durchaus auch Ihre eigenen Materialien zuschicken.
Bei den zugesendeten Materialien werde ich beurteilen, ob sie sich für die Auflistung eignen. Manche Materialien werden nicht aufgenommen, weil beispielsweise ein Hinweis enthalten ist, dassEs besteht kein Anspruch darauf, dass zugesendete Materialien aufgenommen werden.
- eine Verbreitung nicht gestattet ist oder
- nur unter Bedingungen, welche ich nicht erfüllen will.
Link zum Kapitel "wie man den Verfasser kontaktiert".