GRUNDLEGENDER Kommodore

Kommodore GRUNDLEGEND, auch bekannt als GRUNDLEGENDES HAUSTIER, ist der Dialekt der GRUNDLEGENDEN in der 8-Bit-Hauscomputerlinie von Commodore International verwendeten Programmiersprache, sich vom HAUSTIER von 1977 zum C128 von 1985 streckend. Der Kern hat auf 6502 Microsoft BASIC basiert, und als solcher teilt es den grössten Teil des Kerncodes mit anderen 6502 GRUNDLAGEN der Zeit wie GRUNDLEGENDER Applesoft.

Geschichte

Kommodore hat GRUNDLEGEND von Microsoft auf einer "Bezahlung einmal lizenziert, keine Lizenzgebühren" Basis für 25,000 US$ (Ordnen verschiedene Quellen diesen Betrag zwischen 10,000 $ und 30,000 $ an). Bill Gates hat es zuerst an einer Königtum-Gebühr von 3 $ pro Einheit angeboten, aber Jack Tramiel hat es gedreht unten feststellend, dass "ich bereits verheiratet bin" hat er gesagt, würde nicht mehr als 25,000 $ für eine fortwährende Lizenz bezahlen, und Gates ist später zurückgekommen und hat das Geschäft akzeptiert. Kommodore hat den Quellcode der GRUNDLEGENDEN Pauschalgebühr genommen, und weiter hat es innerlich für alle ihre anderen 8-Bit-Hauscomputer entwickelt. Erst als der Kommodore 128 (mit V7.0), dass ein Urheberrechtsvermerk von Microsoft gezeigt wurde. Jedoch hatte Microsoft ein Osternei in die Version 2 oder den Grundlegenden "Steigungs"-Kommodore eingebaut, der seine Herkunft bewiesen hat: Das Schreiben des (dunklen) Befehls würde auf das Erscheinen auf dem Schirm hinauslaufen. (Das Osternei wurde gut verborgen — die Nachricht ist in keiner Zerlegung des Dolmetschers aufgetaucht.)

Technische Details

Eine günstige Eigenschaft des mit dem ROM ortsansässigen GRUNDLEGENDEN Dolmetschers und KERNAL des Kommodores war der Redakteur des vollen Schirms, der Benutzern erlaubt hat, in direkte Befehle einzugehen oder Programm-Linien von überall her auf dem Schirm — einfach durch das Drücken des Schlüssels einzugeben und zu editieren, wann auch immer der Cursor zufällig auf einer Linie war, die eine gültige GRUNDLEGENDE Behauptung enthält. Das hat eine bedeutende Änderung in Programm-Zugang-Schnittstellen im Vergleich zu anderen allgemeinen Hauscomputer-GRUNDLAGEN zurzeit gekennzeichnet, die normalerweise Linienredakteure verwendet haben, die durch einen getrennten Befehl, einen "Kopie-Cursor," Flucht-Folgen oder das ähnliche angerufen sind.

Es hatte auch die Fähigkeit dazu, genannt Dateien zu jedem Gerät, einschließlich der Kassette - ein populäres Speichergerät in den Tagen des HAUSTIERES zu sparen. Die meisten Systeme des Zeitalters haben nur Dateinamen auf der Diskette unterstützt, die sparende vielfache Dateien auf anderen Geräten schwieriger gemacht hat. Der Benutzer von einem dieser Systeme war erforderlich, die Gegenanzeige des Recorders an der Position der Datei zu bemerken, aber das war ungenau und für den Fehler anfällig. Viele Nichtkommodore-Benutzer haben um das Problem gearbeitet, indem sie nur eine Datei pro Band registriert haben. Mit dem HAUSTIER, als der Benutzer gebeten hat, eine Datei namentlich von der Kassette zu laden, würde das Gerät Daten folgend lesen, irgendwelche nichtzusammenpassenden Dateinamen ignorierend, bis die genannte Datei erreicht und ins Gedächtnis gelesen wurde. Das Dateisystem wurde auch durch eine starke Rekordstruktur unterstützt, die geladen oder zu Dateien gespart werden konnte. Ein anderer Unterschied zwischen den Kassette-Übertragungsdurchführungen des Kommodores und der anderen Systeme war, dass Kommodore-Bänder digital verschlüsselt wurden, wo andere Hersteller eine weniger teure analoge Schnittstelle verwendet haben, die den Gebrauch eines Standardtonbandgeräts ermöglicht hat, aber viel weniger zuverlässig war.

Wie der ursprüngliche Dolmetscher von Microsoft BASIC, auf dem es basiert, ist GRUNDLEGENDER Kommodore langsamer als heimischer Maschinencode. Testergebnisse haben gezeigt, dass das Kopieren von 16 Kilobytes vom ROM bis RAM weniger als eine Sekunde im Maschinencode, aber mehr als eine Minute im GRUNDLEGENDEN nimmt. Um schneller durchzuführen, als der Dolmetscher haben Programmierer angefangen, verschiedene Techniken zu verwenden, um Ausführung zu beschleunigen. Man sollte oft benutzte Werte der ganzen Zahl in Variablen versorgen, anstatt wörtliche Werte zu verwenden, weil Interpretation eines Variablennamens schneller war als Interpretation einer wörtlichen Zahl. Als Geschwindigkeit wichtig war, haben einige Programmierer Abteilungen von GRUNDLEGENDEN Programmen in 6502 Zusammenbau-Sprache umgewandelt und haben sie vom GRUNDLEGENDEN Verwenden des Befehls durchgeführt; in anderen Zeiten, als Geschwindigkeit zu schnell war, sind Programmierer zurück zum GRUNDLEGENDEN gefallen, und haben verschiedene Adressen im Gedächtnis befragt (wie $A6 für den C-64 oder $D0 für den C-128, Größe der Tastatur-Warteschlange anzeigend), bevor sie anfangen konnten, wieder durchzuführen.

Kommodore GRUNDLEGENDE Schlüsselwörter konnte abgekürzt werden, indem er zuerst in einen unausgewechselten Tastenanschlag, und dann eine ausgewechselte Version des folgenden Tastenanschlags eingegangen ist. Diese zwei Charaktere wurden dann gemäß einer Nachschlagetabelle grammatisch analysiert, und haben als ein Ersatz dafür akzeptiert, den kompletten Befehl zu tippen. Jedoch, weil GRUNDLEGENDE Schlüsselwörter im Gedächtnis als einzelne Byte-Jetons versorgt wurden, war das eine Bequemlichkeit für den Behauptungszugang aber nicht eine Optimierung.

Im Verzug Großschrift-Only-Codierung erscheinen ausgewechselte Charaktere als ein Grafiksymbol; z.B konnte der Befehl abgekürzt werden (der onscreen geähnelt hat). Die meisten solche Befehle waren zwei Briefe lange, aber in einigen Fällen waren sie länger. In Fällen wie das gab es eine Zweideutigkeit, so waren mehr unausgewechselte Briefe des Befehls, solcher als erforderlich, dafür erforderliche. Einige Befehle hatten keine abgekürzte Form, entweder wegen der Kürze oder Zweideutigkeit mit anderen Befehlen. Zum Beispiel, der Befehl, hatte keine Abkürzung, weil seine Rechtschreibung mit dem getrennten Schlüsselwort kollidiert hat, das näher zum Anfang der Schlüsselwort-Nachschlagetabelle gelegen wurde.

Durch das Abkürzen von Schlüsselwörtern war es möglich, mehr Code anzusehen, als auf einer einzelnen Linie sonst möglich sein würde (Linienlängen wurden gewöhnlich auf 2 oder 4 Schirm-Linien, abhängig von der spezifischen Maschine beschränkt). Das hat berücksichtigt, dass ein geringer auf den Gemeinkosten gespart hat, um sonst notwendige Extraprogramm-Linien, aber nichts mehr zu versorgen. Alle GRUNDLEGENDEN Befehle waren tokenized und haben 1 Byte (oder zwei, im Fall von mehreren Befehlen von GRUNDLEGENDEN 7 oder GRUNDLEGENDEN 10) im Gedächtnis aufgenommen, macht dir nichts aus dem Weg in sie eingegangen wurde.

In der seltenen Situation, als kommerzielle GRUNDLEGENDE Software gemeint geworden ist, um - Hrsg. zu sein, wurde das Schlüsselwort jedes Jetons vollständig dargelegt, zu einer Linie führend, die sich über mehr Schirm-Linien ausgestreckt hat, als es durch den Logischen Linienverbindungstisch behandelt werden konnte. Wenn Programmierer vorgehabt haben, ihrer Software durch Benutzer zu editieren, könnte der Benutzer dennoch gefunden haben, dass es entmutigend mit den Bildschirmredigieren-Fähigkeiten editiert hat. ing diese langen Linien auf frühen Kommodore-64 in der Nähe vom Boden des Schirms konnte den Programmfehler "des Hülle-Unfalls des Stoßes" im 40 Säulenschirm-Redakteur auslösen, die Maschine veranlassend, abzustürzen oder AUS DEM SPEICHER-Fehler zurückzukehren.

Kommodore GRUNDLEGENDE Linien haben keine Räume außer gebraucht, wo das Auslassen von demjenigen, und viele Kommodore GRUNDLEGENDE Programme zweideutig sein würde, wurde ohne Räume z.B geschrieben. Das Auslassen von Räumen als solcher würde zu einem kompakteren Programm führen, da der tokenizer nie jeden zwischen Schlüsselwörtern eingefügten Raum entfernt: Die Anwesenheit von Räumen läuft auf Extrabytes auf das tokenized Programm hinaus, die während der Ausführung bloß ausgelassen werden.

Die Ordnung der Ausführung des Kommodores GRUNDLEGENDE Linien wurde durch die numerierende Linie nicht bestimmt; statt dessen ist es der Ordnung gefolgt, in der die Linien im Gedächtnis verbunden wurden: Viel wie eine moderne einzeln verbundene Liste wurde jede Programm-Linie im Gedächtnis als eine Linienzahl, ein Zeigestock, und dann der Tokenized-Code für die Linie versorgt. Der Zeigestock hat die Adresse im Gedächtnis der folgenden Programm-Linie enthalten. Während in ein Programm eingegangen wurde, GRUNDLEGEND würde ständig Programm-Linien im Gedächtnis wiederbestellen, so dass die Linienzahlen und Zeigestöcke alle in aufsteigender Reihenfolge waren. Jedoch, nachdem in ein Programm eingegangen wurde, manuell die Linienzahlen verändernd, und Zeigestöcke mit den STOßEN Befehlen in Unordnung Ausführung berücksichtigen oder sogar jeder Linie dieselbe Linienzahl geben konnten. In den frühen Tagen, als im GRUNDLEGENDEN geschriebene Software gewerblich verfügbar war, war das eine Softwareschutztechnik, die verwendet ist, um zufällige Modifizierung des Programms zu entmutigen.

Variablennamen waren nur zu 2 Charakteren bedeutend; so die Variablennamen, und haben sich alle auf dieselbe Variable bezogen.

Das heimische Zahl-Format des Kommodores BASIC, wie das seines Elternteils FRAU BASIC, ließ Punkt schwimmen. Die meisten zeitgenössischen Durchführungen von BASIC haben ein Byte für die Eigenschaft (Hochzahl) und drei Bytes für den mantissa verwendet. Das hat zu Problemen in kommerziellen Anwendungen geführt, da die Genauigkeit einer Schwimmpunkt-Zahl mit drei Bytes mantissa nur ungefähr 6.5 dezimale Ziffern ist, und herum - vom Fehler üblich ist. Kommodore hat jedoch vier Bytes von FRAU BASIC mantissa verwendet, der ihre BASIC viel mehr angepasst an das Geschäft gemacht hat als die meisten anderen GRUNDLAGEN des Zeitalters.

Auch verwandt mit FRAU BASIC haben 16 Bit ganze Zahlen unterzeichnet (d. h. in der Reihe-32768 zu 32767) waren durch das Postbefestigen eines Variablennamens mit einem Prozent-Symbol verfügbar, und String-Variablen wurden durch das Postbefestigen des Variablennamens mit einem Dollarzeichen vertreten. Trotz der 2 Charakter-Grenze auf Variablennamen, den Variablen, und würde jeder als verschieden verstanden.

Viele GRUNDLEGENDE Erweiterungen wurden für den Kommodore 64, wegen der relativ beschränkten Fähigkeiten zu seinen heimischen GRUNDLEGENDEN 2.0 veröffentlicht. Eine der populärsten Erweiterungen war der DOS-Keil wegen seiner Einschließung auf der Kommodore-1541-Platte des Tests/Demo. Diese 1-Kilobyte-Erweiterung auf den GRUNDLEGENDEN hat mehrere plattenzusammenhängende Befehle einschließlich der Fähigkeit hinzugefügt, ein Plattenverzeichnis zu lesen, ohne das Programm im Gedächtnis zu zerstören. Seine Eigenschaften wurden nachher in verschiedenen Dritterweiterungen wie die populäre Epyx Patrone von FastLoad vereinigt. Andere GRUNDLEGENDE Erweiterungen haben zusätzliche Schlüsselwörter hinzugefügt, um es leichter zu machen, Elfen, Ton und hochauflösende Grafik wie GRUNDLEGENDER Simons zu codieren.

Aus einem modernen Programmiergesichtspunkt haben die früheren Versionen des GRUNDLEGENDEN Kommodores einen Gastgeber von schlechten Programmierfallen für den Programmierer präsentiert. Da die meisten dieser Probleme auf Microsoft BASIC zurückzuführen gewesen sind, eigentlich hat jeder des Zeitalters GRUNDLEGENDE Hauscomputer unter ähnlichen Mängeln gelitten. Das GRUNDLEGENDE Liniennumerieren hat bedeutet, dass mit der schlechten Planung, Linien in ein Programm einfügend, häufig bedeutet hat, das ganze Programm umzustrukturieren (später, haben GRUNDLEGENDE Versionen ein LÖSCHEN eingeschlossen, und NUMMERIEREN SIE Befehl, sowie einen AUTO-Linienzählen-Befehl UM, der Linienzahlen automatisch einfügen würde, die auf einer ausgewählten Zunahme gestützt sind). Außerdem werden alle Variablen als globale Variablen behandelt. Klar definierte Schleifen sind hart, zu schaffen, häufig den Programmierer veranlassend, sich auf den GOTO-Befehl zu verlassen (das wurde später in GRUNDLEGENDEN 3.5 mit der Hinzufügung des, der SCHLEIFE, WÄHREND, BIS, und AUSGANGS-Befehle berichtigt). Fahne-Variablen mussten häufig geschaffen werden, um bestimmte Aufgaben durchzuführen. Außerdem hat die 80 Charakter-Liniengrenze in früheren Versionen des Kommodores GRUNDLEGEND häufig bedeutet, Aufgaben in vielfache Routinen aufzuteilen, häufig auf Spaghetti-Code hinauslaufend. Frühere GRUNDLAGEN vom Kommodore haben auch an Beseitigen-Befehlen Mangel, bedeutend, dass Programmfehler und unbenutzte Variablen hart sind Fallen zu stellen.

Versionen und Eigenschaften

Eine Liste von CBM GRUNDLEGENDEN Versionen in der zeitlichen Reihenfolge, mit nacheinander Komfortmerkmalen:

Veröffentlichte Versionen

  • V1.0: HAUSTIER 2001 mit der chiclet Tastatur und eingebautem Datassette (ursprüngliches HAUSTIER)
  • Reihe, die auf 256 Elemente beschränkt ist
  • GUCKEN SIE Befehl hat ausführlich über GRUNDLEGENDE ROM-Positionen über dem $C000 unbrauchbar gemacht
  • V2.0 (die erste Ausgabe): HAUSTIER 2001 mit der Tastatur des vollen Reisens & Steigung ROMs
  • fügen Sie hinzu, dass IEEE-488 unterstützen
  • verbessert die Müll-Sammlung
  • befestigen Sie ordnen Programmfehler
  • Osternei - hereingehende Anzeigen
  • V4.0: PET/CBM 4000/8000 Reihe (und späte Versions-LIEBLINGS-2001)
  • Plattenoperationen: usw. (15 insgesamt)
  • Plattenfehlerkanal-Variablen:
  • V2.0 (die zweite Ausgabe, danach 4.0): VIC-20; C64
  • V4 +: CBM-II Reihe (auch bekannt als B, P Reihe)
  • Speichermanagement:
  • mehr Plattenoperationen:
  • formatierter Druck:
  • das Fehlerabfangen:
  • das alternative Ausbreiten:
  • das Berühren des dynamischen Fehlers:
  • flexibel gelesen: linenumber
  • Schnur-Suchfunktion:
  • V3.5: C16/116, Plus/4
  • Ton und Grafik befehlen
  • Steuerknüppel hat eingegeben:
  • Dezimalzahl  hexadecimal Konvertierung:
  • das strukturierte Schlingen:
  • Funktionsschlüsselanweisung: (auch direkte Weise)
  • Programm-Zugang/Redigieren:
  • das Beseitigen (bei Nachforschung):
  • MLM Zugang-Befehl:
  • C (1) 16, Plus/4 das Osternei - gehen in ein
  • V7.0: C128
  • gesundere und Grafikbefehle, einschließlich der Elfe, die behandelt
  • der eingebaute Elfe-Redakteur:
  • Mehrbehauptung blockiert für Strukturen:
  • Paddel, lightpen Eingang:
  • exklusiv oder Funktion:
  • bekommen Sie variable Adresse:
  • Textweise-Fenstertechnik:
  • kontrollierte Verzögerung:
Speichermanagement:
  • verwendet 128's Bank, die umschaltet, um Programm-Code getrennt von Variablen zu versorgen. Variable Werte würden über Programm-Ausführungen bewahrt, wenn das Programm mit dem GOTO-Befehl angefangen würde.
mehr Plattenoperationen:
  • Zentraleinheitsgeschwindigkeitsanpassung: (2 gegen 1 MHz)
  • gehen Sie in C64 Weise ein:
  • undokumentiert, arbeitend: (Lesen Sie Zentraleinheitsregister nach)
  • undurchgeführte Befehle:
  • C128 Osternei - geht in ein

Unveröffentlichte Versionen

  • V3.6: Kommodore-FLÜSSIGKRISTALLANZEIGE (unveröffentlichter Prototyp). Fast identisch zu V7.0, mit den folgenden Unterschieden:
  • statt
statt
  • Befehle nicht präsentieren
  • Zusätzlicher Befehl:
  • V10: Kommodore 65 (unveröffentlichter Prototyp)
  • Grafik/Video Befehle:
  • Maus hat eingegeben:
  • Textdatei Dienstprogramm:
  • das Programm-Redigieren:
  • Speichermanagement:
undurchgeführte Befehle:

Bemerkenswerte Erweiterungspakete

  • Superexpander (VIC-20; geliefert auf der Patrone) (Kommodore)
  • Superexpander 64 (C64; Patrone) (Kommodore)
  • Simons GRUNDLEGEND (C64; Patrone) (Kommodore)
  • Grafik GRUNDLEGEND (C64; Diskette) (Hesware)
  • GRUNDLEGENDE 8 (C128; Diskette und fakultativer innerer ROM-Span) (Walrusoft)
Referenzen

GRUNDLEGENDE 2.0:

  • Angerhausen u. a. (1983). Die Anatomie des Kommodores 64 (für die volle Verweisung, sieh den Artikel C64).

GRUNDLEGENDE 3.5:

  • Gerrard, Peter; Bergin, Kevin (1985). Der Ganze KOMMODORE 16 ROM-Zerlegung. Internationale Standardbuchnummer von Gerald Duckworth & Co. Ltd 0-7156-2004-5.

GRUNDLEGENDE 7.0:

  • Jarvis, Dennis; Springer, Jim D. (1987). GRUNDLEGENDE 7.0 Internals. Großartiger Rapids, Michigan: Internationale Standardbuchnummer von Abacus Software, Inc 0-916439-71-2.

GRUNDLEGENDE 10.0:


Grube-Naturschutzgebiet von Paxton / Paul Halmos
Impressum & Datenschutz