Commodore Logo

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Commodore Logo
C=Logo Einschaltmeldung1.jpg
Entwickler Leigh Klotz, Jr., Andy Finkel, John Cox, Patrick Sobalvarro, Devon McCullough
Publisher Terrapin, Inc. und Commodore Business Machines, Inc.
Release 1982
Plattform(en) C64, Plus/4
Genre Entwicklungssystem für die Sprache Logo
Steuerung Icon tastatur.png
Medien Icon disk525 2.png Icon cartridge.png
Sprache Sprache:englisch Sprache:französisch Sprache:italienisch
Information Version A und 8


Allgemeines[Bearbeiten]

Herausgeber[Bearbeiten]

Herausgeber ist die Firma Terrapin, Inc. im Jahr 1982/83 in Zusammenarbeit mit der Firma Commodore. Es basiert auf der Programmiersprache Logo vom Massachusetts Institute of Technology.

Programmierer[Bearbeiten]

Die C64-Implementierung wurd von Leigh Klotz, Jr. entwickelt mit Unterstützung von Andy Finkel (der Firma Commodore), sowie John Cox, Patrick Sobalvarro und Devon McCullough (der Firma Terrapin).

Vorgängerprogramme[Bearbeiten]

Es existieren die Version A und die aktuelle Version 8.

Vertrieb[Bearbeiten]

Der Preis betrug 1985 stolze 159 DM.

Beschreibung [1][Bearbeiten]

Lieferumfang[Bearbeiten]

Die Modul-Version für den Plus/4

Das Entwicklungssystem ist auf zwei Disketten im 1541-Format (einseitig bespielt) gespeichert. Die erste Diskette beinhaltet das Logo-System, während auf der zweiten die Logo Utilities (wie nützliche Routinen bzw. Prozeduren u.a. für Grafiken, Sprites und Musik, Programmbeispiele, Demos, Spiele, Anwendungen wie Assembler, Texteditor, Spriteeditor usw.) gespeichert sind.

Hardwareanforderung und -unterstützung[Bearbeiten]

Minimum:

unterstützt werden:

  • Diskettenlaufwerk 1571
  • Drucker Commodore 1525

funktioniert auch mit:

Arbeitsweise[Bearbeiten]

Demonstration von Commodore Logo: Der geteilte Bildschirm mit Texteingabezeile (unten) und HiRes-Grafikansicht (oben). Die weiße Figur soll die Logo-Schildkröte (links) sein.
Listing einer Logo-Prozedur.

Der Eingabeprompt von Logo ist das Fragezeichen  ? . Alles was dahinter eingegeben wird, wird nach einem Druck auf die Taste RETURN  ausgeführt oder mit einer entsprechenden (Fehler-)Meldung bei Falscheingabe zurückgemeldet. Es wird im Direkteingabemodus von Logo nur jeweils ein Eingabekommando ggf. mit zusätzlichen Parametern direkt ausgeführt. Eine Korrektur einer Eingabezeile ist jederzeit über die Cursortasten und der Taste INST/DEL  möglich. Logo nutzt standardmäßig den Einfügemodus. Eine logische Eingabezeile bei Commodore Logo ist 256 Zeichen lang.

Unter Logo kann ein Eingabekommando, ein Befehl, eine Prozedur bzw. ein Programm sein. Eine Prozedur besteht aus ein oder mehreren Befehlen, die eventuell eine bestimmte Anzahl wiederholt werden. Ein oder mehrere Prozeduren ergeben somit ein Logo-Programm. Jede Prozedur kann als Programm in Logo abgespeichert, geladen oder ausgeführt werden. Prozeduren werden mit Hilfe eines (Prozedur-)Editors erstellt. Die Befehle einer Prozedur werden der Reihe nach ohne Zeilennummernzuweisung abgearbeitet. Erfolgt kein Sprung auf eine andere Prozedur, so endet das Programm.

Da Logo eine erzieherische Programmiersprache ist, die auch für Kinder geeignet ist, gibt es viele Möglichkeiten HiRes-Grafiken darzustellen. Dies geschieht im separaten HiRes-Grafikbildschirm und nicht im Textbildschirm, der für die Programmierung und Operationen mit den Peripherie-Geräten zur Verfügung steht. Daher bietet Logo einen reinen Text- und Grafikbildschirm, sowie einen geteilten Bildschirm mit Grafikdarstellung und Texteingabe an. Erstellte Grafiken und Shapes (Sprites) können ebenfalls abgespeichert werden, ebenfalls wie Maschinenspracheprogramme.
Beide Bildschirm sind voneinander unabhängig umschaltbar. Auch im Prozedur- bzw. Programmmodus kann zwischen den Bildschirmen jederzeit umgeschaltet werden!
Logo schaltet den geteilten Text-/Grafikbildschirm automatisch an, wenn eine Prozedur bzw. Programm Grafikausgaben tätigt.

Da Logo eine Programmiersprache ist, die für Computereinsteiger und Programmierneulinge gedacht ist, kommen erfahrende Programmierer, die anderer höhere Programmiersprachen wie BASIC, C, Pascal, Assembler, usw. programmieren können, etwas durcheinander.


Wichtige Tasten[Bearbeiten]

Wichtige Tasten im Editier-, Direkteingabe- und Programmmodus sind:

  • F1  : Nur Textbildschirm.
  • F3  : Text- und Grafikbildschirm (HiRes), wobei 1/3 des unteren Bildschirms die Textzeilen anzeigt.
  • F5  : Nur Grafikbildschirm (HiRes).
  • Cursor oben  oder CTRL  + P  : Wiederholende Anzeige der zuletzt ausgeführten Zeilen bzw. Befehls im Direktmodus.
  • CTRL  + C  oder RUN/STOP  : Prozedurerstellung abschließen --> Prozedur wird im Speicher abgelegt.
  • CTRL  + G  : Programm / Prozedurerstellung abbrechen.
  • CTRL  + W  : Programm kurzzeitig anhalten (temporäre Unterbrechung), weiter mit beliebiger Taste.
  • CTRL  + Z  : Programm / Prozedurerstellung unterbrechen.

Logo-Schildkröte[Bearbeiten]

Um die Logo-Schildkröte anzuzeigen, entweder die F3  oder F5 , um in den entsprechenden Bildschirmmodus umzuschalten oder einer der Befehle eingeben: SHOWTURTLE, HOME, DRAW.

Die Farben der C64-Farbtabelle werden für die Befehle PENCOLOR (Grafikfarbe) und BACKGROUND (Hintergrundfarbe im Grafikbildschirm), sowie TEXTCOLOR (Textfarbe) und TEXTSCREEN (Hintergrundfarbe im Textbildschirm) genutzt, die direkt Auswirkung auf den HiRes-Bildschirm hat. Mit dem DOUBLECOLOR kann man die doppelte Farbe pro 8*8 Kachel aktivieren, der mit SINGLECOLOR (Ein-Farben-Modus) wieder deaktiviert wird.

Weitere interessante Befehle für das Zeichnen mit der Schildkröte sind:

  • FD x - Bewegt die Schildkröte x Pixel nach vorn.
  • BK x - Bewegt die Schildkröte x Pixel nach hinten.
  • LT x - Dreht die Schildkröte x° nach links.
  • RT x - Dreht die Schildkröte x° nach rechts.
  • PD - Die Schildkröte zeichnet eine Linie beim Bewegen; standardmäßig aktiviert, d.h. der Zeichenstift liegt auf dem Grafikbildschirm (Zeichenblatt; PEN DOWN).
  • PU - Die Schildkröte zeichnet keine Linie beim Bewegen, d.h. der Zeichenstift wird vom Grafikbildschirm (Zeichenblatt, PEN UP) genommen.
  • HT - Blendet Schildröte aus (hide)
  • ST - Zeigt Schildkröte (show)
  • HOME - Positioniert die Schildkröte mit dem Stift nach oben auf die Grafikbildschirmmitte, falls diese mal aus dem Bildschirm heraus wandert und so nicht sichtbar ist. Standardmäßig sind das die x,y-Koordinaten 0,0.

Prozeduren und Programme[Bearbeiten]

Eine Prozedur/Programm im Commodore Logo Editor.
Zeichnung der Prozedur DEMO 5 15.

Das Erstellen, Speichern, Laden und Löschen von Prozeduren bzw. Programme erfolgt wie folgt:

  • Eine Prozedur wird mit dem Befehl TO NAME erstellt. Es erscheint dann ein Editor, in denen mehrere Befehle hintereinander eingegeben werden können und als Prozedur im Speicher abgelegt werden können. Dies geschieht mit dem Verlassen des Editors über die Tastenkombination CTRL  + C . Die Prozedur kann dann direkt mit NAME aufgerufen werden.
    Alternativ kann der Editor mit der zu bearbeitende Prozedur auch mit EDIT NAME bzw. ED NAME aufgerufen werden.
  • Um ein Logo-Programm (Prozedur) aus dem Speicher auf Diskette abzuspeichern, erfolgt dies mit: SAVE "Programmname
  • Ein gespeichertes Programm kann man wieder in den Logo-Interpreter hinein geladen werden mit: READ "Programmname
  • Gestartet wird ein Programm mit der direkten Eingabe des Programm- bzw. Prozedurnamens!
  • Der Inhalt einer Diskette wird verlustfrei angezeigt mit: CATALOG
  • Ein Programm kann von der Diskette gelöscht werden mit: ERASEFILE "Programmname

Im Gegensatz zu anderen Programmiersprachen können so viele Logo-Programme bzw. Prozeduren geladen werden bis der Speicherplatz von Logo ausgeht.

Viele Befehle können abgekürzt werden. Die meisten Befehle oder Prozeduren benötigen für das Zeichen noch eine Zahlenangaben, meist die Anzahl der zu zeichnenden Pixel oder die Zahl für eine Farbveränderung oder die Anzahl der Wiederholung für die auszuführende Prozedur.

Wichtige Befehle mit dem Umgang von Prozeduren sind:

  • PO NAME - Zeigt alle Befehle bzw. Aufrufe in der benannten Prozedur an - vergleichbar mit dem BASIC-Befehl: LIST
  • PO ALL - Zeigt alle Befehle bzw. Aufrufe aller benannten Prozeduren im Speicher an.
  • POTS - Zeigt alle Namen des Prozeduren im Arbeitsspeicher an.
  • ER NAME - Löscht die benannte Prozedur aus dem Speicher
  • ER ALL - Löscht alle Prozeduren aus dem Speicher - vergleichbar mit dem BASIC-Befehl: NEW

Hier ein kleines Logo-Beispielprogramm, das mit TO DEMO im Prozedur-Editor geschrieben wird:

TO DEMO :A :B
 FORWARD :A 
 RIGHT 2 * :B
 DEMO :A + 1 :B
END

Nach der erfolgreichen Eingabe und Bestätigung mit der Tastenkombination CTRL +C  wird es mit beispielsweise mit DEMO 5 15 gestartet. Da es ein Endlosprogramm ist, muss es mit der Tastenkombination CTRL +G  abgebrochen werden.
Programmerklärung: Das Programm DEMO, das zwei Zahlenwerteingabe für die Variablen :A und :B benötigt, bewegt nur die Schildkröte A Schritte vorwärts und dreht sie 2*B° nach rechts. Anschließend wird A um 1 erhöht und die Prozedur DEMO erneut aufgerufen.
Um einen gute grafische Figur dargestellt zu bekommen, einfach die Befehle HOME und CS vor dem Aufruf von DEMO eingeben.

Befehlsübersicht[Bearbeiten]

Abkürzungen stehen hinter dem Schrägstrich! Benötigt ein Befehl ein oder zwei zusätzliche Parameterangaben, so sind diese dahinter angegeben. Wahlparameter sind mit | gekennzeichnet. Da Logo für Listen bei Kommandos eckige Klammern [] nutzt, kann der allgemeine Programmier-Syntax nicht angewandt werden!

Grafik-Befehle[Bearbeiten]

Diese Befehle dienen für die Steuerung der Logo-Schildkröte (Sprite 0)

  • BACK / BK x - Bewegt die Schildkröte zurück
  • BACKGROUND / BG x - Verändert die Hintergrundfarbe (0 bis 15)
  • CLEARSCREEN / CS - Löscht den Grafikbildschirm
  • DOUBLECOLOR - Zweifarbenmodus verwenden für 8*8 Kachel
  • DRAW - Löscht den Grafikbildschirm, setzt die aktuelle Standardfarben und die Schildkröte auf die Home-Position.
  • DRAWSTATE - Mitteilung über den Zustand des Grafikbildschirms mit folgenden Angaben:
  1. Zustand des Zeichenstifts PEN unten/oben (down/up) TRUE/FALSE
  2. Zustand der Schildkröte TURTLE sichtbar/versteckt (show/hide) TRUE/FALSE
  3. Hintergrundfarbe (background color) 0 bis 15
  4. Stiftfarbe (pen color) 0 bis 15 oder -1 für Löschstift (PENERASE)
  5. Grafikbildschirm (screen mode) NODRAW / DRAW
  6. Farbmodus (color mode) SINGLECOLOR / DOUBLECOLOR.
  7. Aktueller Bildschirm: TEXTSCREEN, FULLSCREEN or SPLITSCREEN
  8. Hintergrundfarbe Textbildschirm (text background color / TEXTBG) 0 bis 15
  9. Schriftfarbe Textbildschirm (color of text characters / TEXTCOLOR) 0 bis 15
  • FORWARD / FD x - Bewegt die Schildkröte vor.
  • FULLSCREEN F5  - Voller Grafikbildschirm.
  • HEADING - Funktion / Parameter zum Auslesen der aktuellen Drehung in ° der Schildkröte.
  • HIDETURTLE / HT - Blendet die Schildkröte aus.
  • HOME - Setzt die Schildkröte auf die Home-Position, und zwar in die Bildschirm-Mitte.
  • LEFT / LT x - Dreht die Schildkröte nach links (0 bis 360).
  • NODRAW / ND - Aktiviert den Textbildschirm und löscht ihn.
  • NOWRAP - Schildkröte lässt sich nur im sichtbaren Grafikbildschirm bewegen. Falls sie den Bildschirm verlässt, wird die Zeichnung(-routine) abgebrochen.
  • PENCOLOR / PC x - Verändern der Zeichenfarbe der Grafik (0 bis 15).
  • PENERASE / PC-1 - Löschen von gezeichneten Linien
  • PENDOWN / PD - Die Schildkröte zeichnet eine Linie beim Bewegen; standardmäßig aktivert.
  • PENUP / PU - Die Schildkröte zeichnet keine Linie beim Bewegen.
  • RIGHT / RT x - Dreht die Schildkröte nach rechts (0 bis 360).
  • SETHEADING / SETH x - Dreht die Schildkröte absolut (0 bis 360).
  • SETSHAPE - Blendet entsprechendes Sprite ein (0 bis 7); Shape bzw. Sprite 0 ist die Schildkröte .
  • SETX x - Bewegt die Schildkröte absolut in X-Richtung.
  • SETXY x y - Bewegt die Schildkröte absolut in X- und Y-Richtung. Negative Zahlen in runden Klammern zu setzen!
  • SETY x - Bewegt die Schildkröte absolut in Y-Richtung.
  • SHAPE - Zeigt Nummer des aktuell verwendetes Sprites an.
  • SHOWTURTLE / ST - Zeigt die Schildkröte an.
  • SINGLECOLOR - aktiviert den Ein-Farben-Zeichenmodus, d.h. 1 Farbe pro Kachel.
  • SPLITSCREEN F3  - Geteilter Bildschirm: Text und Grafik (HiRes).
  • STAMPCHAR "Zeichen - Druckt je ein Zeichen auf dem Grafikbildschirm.
  • TELL x - Zuweisung des Sprites x (0 bis 7) als aktive Schildkröte.
  • TEXTBG x - Verändert die Hintergrundfarbe des Textbildschirms (0 bis 15)
  • TEXTCOLOR x - Verändert die Textfarbe des Textbildschirms (0 bis 15).
  • TEXTSCREEN F1  - Vollen Textbildschirm aktivieren.
  • TOWARDS x y - Winkelfunktion bzw. Abstand/Drehung in ° des Punktes x,y zum Kopf der Schildkröte.
    • SETHEADING TOWARDS x y - Setzt den Kopf der Schildkröte auf den Punkt x,y.
  • WHO - Teilt mit, welches das aktive Sprite ist.
  • WRAP - Deaktiviert NOWRAP, d.h. Schildkröte ist auf dem gesamten Grafikbildschirm bewegbar.
  • XCOR - Funktion/Parameter zum Auslesen der aktuellen x-Position ° und der x-Koordinate der Schildkröte
  • YCOR - Funktion/Parameter zum Auslesen der aktuellen y-Position ° und der y-Koordinate der Schildkröte.

In Gegensatz zur grafischen BASIC-Erweiterungen bieten sich direkt keine eigenen Befehle zur Erstellung von Kreisen, Dreiecken, Rechtecken oder andere geometrischen Figuren an. Diese können aber durch jeweils als Prozedur - so gesehen als eigenständigen Befehl - erstellt werden, damit beispielsweise ein CIRCLE 50 einen Kreis mit einem Radius von 50 Pixeln zeichnet.

Nummerische Funktionen[Bearbeiten]

  • + Addition
  • - Subtraktion
  • = Gleich, Zuweisung
  • * Multiplikation
  • / Division
  • > Vergleichsoperator größer
  • < Vergleichsoperator kleiner
  • ATAN x y - Arcustangens; Ausgabe in 0 bis 360°
  • BITAND x y - Bitvergleich zweier Zahlen mit AND
  • BITOR x y - Bitvergleich zweier Zahlen mit OR
  • BITXOR x y - Bitvergleich zweier Zahlen mit XOR
  • COS x - COSinus-Funktion
  • INTEGER x - Ausdruck in eine Ganzzahl wandeln, die nächstkleinere ganze Zahl einer Fließkommazahl wird ermittelt.
  • NUMBER? Ausdruck - Funktion ob Ausdruck eine Zahl ist; Ausgabe TRUE/FALSE.
  • QUOTIENT x y - Zeigt bei einer Division zweier Zahlen x/y, den ganzzahligen Wert an.
  • RANDOM x - Ausgabe einer Zufallszahl einer positiven Zahl von 0 bis Eingabewert
  • RANDOMIZE x - Ausgabe einer Zufallszahl einer positiven Zahl von 0 bis Eingabewert, optional komplett in runden Klammern.
  • REMAINDER x y - Ermittelt bei einer Division für x/y den Rest.
  • ROUND x - Rundungsfunktion .0 bis .49 abrunden .5 bis .9 aufrunden.
  • SIN x - SINus-Funktion
  • SQRT x - Wurzelfunktion; vergleichbar SQR.

Hinweis: Negative Werte sind in runde Klammern zu setzen!

Zeichenketten-Funktionen[Bearbeiten]

  • = - Zuweisung von Variableninhalten u. Vergleichsoperator.
  • BUTFIRST / BF - Zeigt alle Elemente einer Zeichenkette/Liste an, bis auf das erste Element.
  • BUTLAST / BL - Zeigt alle Elemente einer Zeichenkette/Liste an, bis auf das letzte Element.
  • COUNT Ausdruck - Zählt die im Ausdruck (Wort/Liste) enthaltene Zeichen bei einem Wort oder enthaltende Elemente einer Liste.
  • EMPTY? Ausdruck - Vergleich auf ein leeres Element (Zeichenkette oder Liste); Ausgabe: TRUE/FALSE
  • FIRST - Zeigt nur das erste Elemente einer Zeichenkette/Liste an
  • FPUT Element1 Element2 - Bildet eine Liste aus zwei Elementen, wobei Element2 eine Liste sein muss.
  • ITEM x Ausdruck - Zeigt das x-te (als Zahl) Element eines Ausdrucks (Wort/Liste)
  • LAST - Zeigt nur das letzte Elemente einer Zeichenkette/Liste an
  • LIST Element1 Element2 - Bildet eine Liste aus zwei Elementen (Zeichenkette/Liste)
  • LIST? Ausdruck - Prüft auf eine Liste; Ausgabe: TRUE/FALSE
  • LPUT Element1 Element2 - Bildet eine Liste aus zwei Elementen, wobei Element1 eine Liste sein muss.
  • MEMBER? "Ausdruck1 "Ausdruck2 - vergleicht den Ausdruck1 (Zeichen oder Wort) mit dem Ausdruck 2 (Zeichenfolge
  • MEMBER? "Wort1 [Wort1 Wort2 ...] - oder Liste), die in eckigen Klammern sich befindet []; Ausgabe: TRUE/FALSE
  • SENTENCE / SE Ausdruck1 Ausdruck2 - Verbindet 2 Ausdrücke (Zeichen, Zeichenkette, Wort, Liste, Prozedur) mit Abstand eines Leerzeichens zu einem Satz.
  • WORD "Ausdruck1 "Ausdruck2 - Setzt zwei Ausdrücke (Zeichen, Zeichenkette, Prozedur) ohne Leerzeichenabstand zu einem neuen Wort zusammen.
  • WORD? Ausdruck - Prüft auf ein Wort; Ausgabe: TRUE/FALSE
  • "Zeichenkette - Mit einem Anführungszeichen beginnt eine Zeichenkette (String). Diese kann aus einem Zeichen oder mehreren Zeichenkombinationen (Wörter) bestehen.
  • [Wort1 Wort2 ...] - Eckige Klammern können eine Wortliste bilden.

Zeichenketten werden unter Logo im Gegensatz zu BASIC nicht mit einem zweiten Anführungszeichen geschlossen! Bei Wortlisten werden die einzelnen Wörter ohne Komma nur mit Leerzeichen innerhalb von eckigen Klammern aufgeführt.
Hinweis: Da ein Leerzeichen in Logo auch als Befehlstrennung dient, können Leerzeichen in Zeichenketten nicht einfach verwendet werden!

Anweisungen[Bearbeiten]

  • LOCAL "Variable - Lokale Variabeldeklaration einer temporären Variabel in einem lokalen, aktuellen Prozedur
  • MAKE Variable Ausdruck - Globale Variabelzuweisung: Weisst der Variable den Ausdruck (Zahl, Zeichen, Zeichenkette, Liste) zu.
  • THING "Variable|:Variable - Anzeige des Inhalts der Variable.
  • THING? "Variable|:Variable - Überprüft ob Variable ein Zahlenwert enthält; Ausgabe: TRUE/FALSE
  • ALLOF Vergleich1 Vergleich2 - Ergibt TRUE, wenn beide Vergleiche wahr (TRUE) sind - vergleichbar mit AND.
  • ANYOF Vergleich1 Vergleich2 - Ergibt TRUE, wenn einer der beiden Vergleiche wahr (TRUE) ist - vergleichbar mit OR.
  • IF Vergleich ... - Wenn-Vergleich
  • IF Vergleich THEN Befehl ELSE Befehl - Wenn-dann-sonst-Vergleich
  • IFFALSE / IFF ... TEST - Wenn-falsch-Vergleich; alternativ mit TEST
  • IFTRUE / IFT ... TEST - Wenn-wahr-Vergleich; alternativ mit TEST
  • NOT - Vergleichsoperator NOT
  •  :NAME - Variable bzw. Prozedurparameter (aber auch Label), der mindestens einen Buchstabe beinhalten muss. Im Gegensatz zu BASIC müssen Variablen innerhalb der Prozedur exakt verwendet werden, ansonsten gibt es einen Programmabbruch mit Fehlermeldung. Bestandteil von Variablennamen können auch Buchstaben-/Zahlenkombinationen sein. Bei der Nutzung vom Doppelpunkt : wird mit dem Variableninhalt gearbeitet!

Prozedur-Erstellung[Bearbeiten]

  • ; - Kommentar; zur Beschreibung von Vorgänge innerhalb von Prozeduren (Programme). Alles hinter dem ; wird vom Logo-Interpreter ignoriert.
  • DEFINE Name [Liste] - Definiert eine Prozedur anhand einer Liste von Befehlen. Insgesamt darf die gesamte Eingabe max. 255 Zeichen lang sein!
  • EDIT / ED Name - Aufruf des Editors; optional mit Name, um eine entsprechende Prozedur zu bearbeiten.
  • END - Beendet eine Prozedur, abschließender Befehl im Editor; wird automatisch hinzugefügt, falls man diesen Befehl vergisst.
  • ERASE / ER Name - Löscht benannte, aktive Prozeduren oder Variablen.
  • TEXT Name - Ausgabe eines Textes einer Prozedur, der als "Name" deklariert wurde.
  • TO Name - Definiert eine Prozedur und ruft den Editor auf, um die Befehle hinzuzufügen.

Fehlerbehebung[Bearbeiten]

  • CONTINUE / CO - Führt eine Prozedur / Programm weiter aus, dass durch PAUSE oder CTRL  + Z  unterbrochen wurde.
  • PAUSE - Unterbricht eine Prozedur.
  • NOTRACE - Schaltet TRACE ab.
  • TRACE - Schaltet die Fehlerbehebung ein. Anhalten mit CTRL  + Z , fortsetzen mit SPACE 

Ein- und Ausgabe-Steuerung[Bearbeiten]

  • .CTYO x - Zeigt ein Zeichen anhand einer ASCII-Nummer x (0 bis 255) ohne Zeilenumbruch an.
  • ASCII "Zeichen - Zeigt die ASCII-Nummer eines Zeichens an.
  • CHAR x - Zeigt für x (0 bis 255) das entsprechende Zeichen an.
  • CLEARTEXT - Löscht den Text-Bildschirm und setzt den Cursor an Position HOME (0,0)
  • CLEARINPUT - Löscht den Eingabepuffer
  • CURSOR x y - Setzt den Cursor auf die angegebene x (0 bis 39), y (0 bis 24) Position
  • CURSORPOS - Gibt die aktuelle Cursor-Position aus
  • FPRINT (Funktion (Parameter)) Argumente|"Zeichenkette|[Liste] - Genauso wie PRINT nur werden eckige Klammern [] von Listen mit angezeigt.
  • JOYSTICK x - Auswahl des Joysticks in Port 1/2 mit x (0 oder 1).
  • JOYBUTTON x - Prüft nach ob Joystickbutton von Joystick in Port 1/2 mit x (0 oder 1) gedrückt wurde; Ausgabe: TRUE/FALSE.
  • NOPRINTER - Deaktiviert den PRINTER-Mode
  • PADDLE x - Auswahl des Paddles x (0 bis 3), Funktion gibt Werte von 0 bis 255 zurück.
  • PADDLEBUTTON x - Prüft nach ob Paddlebutton von Paddle x (0 bis 3) gedrückt wurde; Ausgabe: TRUE/FALSE.
  • PRINT / PR (Funktion (Parameter)) Argumente|"Zeichenkette|[Liste] - Ausgabe von Zeichenketten, Liste, Nutzung von mathematischen Berechnungen oder Logo-Parametern
    • PR HEADING - Aktuelle °-Drehung der Schildkröte (normal ist 0)
  • PRINT1 (Funktion (Parameter)) Argumente|"Zeichenkette|[Liste] - Genauso wie PRINT nur ohne Zeilenumbruch (RETURN-Taste)
  • PRINTER - Aktiviert den Ausdruck auf einem Drucker anstelle auf dem Bildschirm
  • RC? - Vergleicht ob ein Tastaturzeichen (aus Tastaturpuffer) eingegeben wurde; Ausgabe: TRUE/FALSE
  • READCHARACTER / RC - Liest letztes eingegebenes Zeichen aus Tastaturpuffer; Eingabefunktion für eines Taste - ähnlich wie GET
  • REQUEST / RQ - Eingabefunktion - ähnlich wie INPUT; Ausgabe erfolgt als Liste
  • SETDISK x - Gerätenummer (8-15) des Diskettenlaufwerks festlegen

Datei- und Diskettenoperationen[Bearbeiten]

  • BLOAD "Name - Lädt die Daten an einen bestimmten Speicherbereich, z.B. für Sprites oder Maschinenspracheprogramme
  • BSAVE - Speichert einen bestimmten Speicherbereich ab, siehe Beispiel:
    • BSAVE "ASSEMBLER.BIN $ "C000 $ "C1FF
  • CATALOG - Anzeige des Directorys der aktuellen Diskette
    • DOS [Kommando:...] - Eingabe von Floppykommandos (funktioniert genauso wie unter BASIC bzw. CBM-DOS!)
    • DOS [N0:NEUE DISK,01] - Formatieren einer Diskette
    • DOS [C0:DATEI1.LOGO=0:DATEI2.LOGO] - Kopieren einer Datei
    • DOS [R0:PROGRAMM.LOGO=PRGM.LOGO] - Umbenennen einer Datei
    • DOS [S0:TESTDATEI.LOGO] - Löschen einer Datei
  • ERASEFILE "Name - Löscht benannte Datei von Diskette
  • ERASEPICT "Name - Löscht benanntes Bild von Diskette
  • ERASE / ER Name - Löscht benannte aktive Prozedur in Logo oder alle mit der Angabe ALL
  • ERNAME "Name - Löscht die Prozedur Name
  • PRINTOUT / PO Name - Listet alle Befehle der benannten Prozedur auf oder alle mit der Angabe ALL
  • POTS - Listet alle aktiven Prozedurtitel mit Aufrufparametern auf
  • READ "Name - Liest ein Programm bzw. Prozedur ein
  • READPICT "Name - Liest ein Bild ein
  • SAVE "Name - Speichert ein Programm bzw. alle Prozeduren unter einem Dateinamen
  • SAVEPICT "Name - Speichert ein Bild ab

Weitere Befehle[Bearbeiten]

  • GO Name - Springt zu einem benannten Label / Prozedur
  • GOODBYE - Resetet Logo (es wird hierbei nicht nach BASIC zurückgekehrt!)
  • OUTPUT / OP - Nur innerhalb von Prozeduren verwendbar, um Prozedurausgaben zu erzeugen! Bricht dabei aber die laufende Prozedur ab!
  • REPEAT x [Befehle ...] - Wiederholt die angegebene Anzahl von angegebenen Prozeduren bzw. Kommandos innerhalb der eckigen Klammern [].
  • RUN Ausdruck - Startet keine Prozeduren und Programme!
  • STOP - Stoppt bzw. bricht eine Prozedur bzw. Programm ab
  • TOPLEVEL - Stoppt alle Prozeduren
  • [Befehl1 Befehl2 ...] - Eckige Klammern können auch zur Bildung von einer Befehlsliste verwendet werden, die bei einigen Befehlen verwendet wird.

Spezial-Befehle[Bearbeiten]

  • .ASPECT x - Zum Verändern der vertikalen Skalierung von Logo (optional: 0.768).
  • .CALL Name x - Aufruf eines Assembler- oder Maschinenspracheprogramms mit optionale Übergabe einer Integer-Zahl
  • .CONTENTS - Listet auf was Logo an Variablen, Prozeduren, Worte und Listen kennt bzw. im Speicher hat.
  • .DEPOSIT Name "Adresse - Verändern von Speicherbereichen (vergleichbar mit POKE) - Achtung: Der Logo-Interpreter kann bei unsachgemäßen Gebrauch von .DEPOSIT abstürzen!
  • .EXAMINE Name "Adresse - Untersuchen von Speicherbereichen mit optionale Angabe einer Speicheradresse (vergleichbar mit PEEK)
  • .GCOLL - Löst eine Garbage Collection aus.
  • .NODES - Abfrage der freien Nodes (freier Speicher).
  • .SPRINT x - Listet die Grafik eines Sprite-Blocks x (0 bis 255) auf dem Textbildschirm auf.
  • .OPTION "Kommando x y - Befehl zum Einstellen einiger Logo-Kommandos/-Eigenschaften.
    • .OPTION "DRAW 0 2 - Beispiel zum Verändern der Standard-Hintergrundfarbe auf rot für den Grafikbildschirm
Einstellbare Logo-Kommandos sind:
DRAW mode farbe - mit mode (0: Hintergrundfarbe; 1: Zeichenfarbe) mit farbe (0 bis 255) für den Grafikbildschirm festlegen.
.DEPOSIT 0 bereich - Einblenden eines Speicherbereichs.
.EXAMINE 0 bereich - Untersuchen eines Speicherbereichs.
EDIT mode farbe - mit mode (0: Hintergrundfarbe; 1: Textfarbe) mit farbe (0 bis 255) des Editors festlegen.
JOYSTICK 0 x - mit x (0 ode r1); wird 1 gewählt, so wird das gedrückte Schaltelement des Joysticks als Zahlenwert ausgegeben.
PRINTER mode zahl - mode (0: Geräteadresse; 1: Sekundäradresse; 2: Zweitdruck auf Bildschirm), auch für NOPRINTER.
RC 0 taste - taste (0 bis 255); auch für READCHARACTER.
READ 0 x - mit x (0 oder 1)
SAVE 0 x - mit x (0 oder 1)
STAMPCHAR mode x - mit mode (0 bis 3) ; x (0 bis 2)
TEXTSCREEN 0 x - Sprite (0 bis 255) permanent auf Textscreen anzeigen.

Voreingestelle Farben (default) sind:

  • 11 (dunkelgrau): Hintergrundfarbe Grafikbildschirm
  • 1 (weiß): Sprite, Zeichenfarbe, Textfarbe im Editor
  • 14 (hellblau): Hintergrundfarbe Textbildschirm
  • 6 (blau): Textfarbe im Textbildschirm

Bibliotheken[Bearbeiten]

Startbild Commodore Logo Demo.
Grafik-Demo des Commodore Logo Demo.

Einige nützliche Programme wie Prozeduren, Assembler, Demos, Anwendungen oder Spiele sind auf der Ultiliy-Diskette von Commodore Logo enthalten:

UTILITIES DISK
6     BASE.LOGO        PRG  Zahlenumrechner, bspw.: Hexadezimal in Dual 
2     JOY.LOGO         PRG  Prozedur für das Zeichnen mit dem Joystick
10    GRAMMAR.LOGO     PRG  Generiert zufällige Sätze 
2     FOR.LOGO         PRG  FOR-NEXT-Schleife/-Prozedur
4     WHILE.LOGO       PRG  Beinhaltet WHILE und UNTIL-Prozedur
9     ANIMAL.LOGO      PRG  Spiel
5     LOG.LOGO         PRG  LOGarithmus und Exponnent-Prozedur
1     ASSORTED.LOGO    PRG  Sprite Demo (assorted shapes)
2     PIG.LOGO         PRG  Wandelt Zeichen in pig Latin A (Kauderwelsch!) um.
3     SNOW.LOGO        PRG  Zeichnet Schneeflocken
3     ARCS.LOGO        PRG  Prozeduren für das Zeichen mit Radien mit der Variable Radius ARC und Kreise (CIRCLE) 
2     COLORS.LOGO      PRG  Variablennamen für die Farbe, z.B. :RED für den Zahlenwert 2
2     AMODES.LOGO      PRG  Bestandteil des Logo-Assembler
6     OPCODES.LOGO     PRG  Bestandteil des Logo-Assembler
14    ASSEMBLER.LOGO   PRG  Assembler-Editor für Logo
4     CCHANGE.SRC.LOGO PRG  Beispiel für Assembler-Programmierung unter Logo
2     ADDRESSES.LOGO   PRG  Bestandteil des Logo-Assembler
1     CCHANGE.BIN      PRG  Beispiel für Assembler-Programmierung unter Logo
1     B&W.LOGO         PRG  Prozedur für s/w-Fernseher/-Monitore
1     CCHANGE.LOGO     PRG  Beispiele für Assembler-Programmierung unter Logo
2     STAMPFD.LOGO     PRG  Zeichenketten auf den Grafikbildschirm ausgeben
4     VELOCITY.LOGO    PRG  Prozedur für Sprites
3     TEXTEDIT.LOGO    PRG  Verwandelt den Logo-Editor in ein Texteditor für das Schreiben von Briefe
10    DYNATRACK.LOGO   PRG  Spiel
20    ADVENTURE.LOGO   PRG  Englisches Textadventure-Spiel
2     TEACH.LOGO       PRG  Prozedur zum Schreiben von Prozeduren ohnen den Logo-Editor
11    SPRED.LOGO       PRG  Sprite-Editor für Logo; Start mit EDSH
3     PRINTPICT        PRG  BASIC-Programm zum Ausdrucken von Logo-Grafiken(-bildschirmen) auf Drucker unter BASIC
33    INSPI.PIC1       PRG  Beispiel-Bild 1
4     SPRITES.LOGO     PRG  Prozeduren mit dem Umgang von Sprites, z.B. Größenveränderung
1     ANIMALS.LOGO     PRG  Spiel
2     ANIMALS.SHAPES   PRG  Grafiken zum Spiel ANIMAL
5     SUBMARINE.LOGO   PRG  Demoprogramm U-Boot
5     INSPI.PIC2       PRG  Beispiel-Bild 2
26    DEMO.LOGO        PRG  Commodore Logo Demo mit 4 Demonstrationsteilen
2     STAMPER.LOGO     PRG  Text auf den Grafikbildschirm ausgeben
2     TET.LOGO         PRG  Grafik-Prozedur für den Umgang mit Variablen
5     MUSIC.LOGO       PRG  Prozedur für die Erstellung von Musik unter Logo
5     DINOSAURS.LOGO   PRG  Demoprogramm Dinosaurier
1     VEHICLES.LOGO    PRG  Sprite Demo mit Autos
2     VEHICLES.SHAPES  PRG  Sprite-Daten
1     SHAPES.LOGO      PRG  Geometrische Spriteformen
2     SHAPES.SHAPES    PRG  Geometrische Spriteformen (Daten)
2     SOUND.LOGO       PRG  Prozedur für die Erstellung von SOUND (Töne) unter Logo
4     SPRITEDEMOS.LOGO PRG  Sprite Demo
4     RUNNER.LOGO      PRG  Sprite Demo "rennende Person"
2     RUNNER.SHAPES    PRG  Sprite-Daten für RUNNER
1     TWINKLE.LOGO     PRG  Musik Demo mit dem Lied "Twinkle, Twinkle, Little Star" 
10    PLOTTER.LOGO     PRG  Prozedur für den 4-Farben-Plotter von Commodore
2     ASSORTED.SHAPES  PRG  Beinhaltet zufällige Sprite-Formen (Shapes)
2     ANIMAL.INSP.LOGO PRG  Bearbeitet die Datenbank für das Spiel ANIMAL
2     C.SHAPES         PRG  Sprite-Daten
8     INSTANT.LOGO     PRG  Sehr vereinfachte Logo-Kommandos z.B. für Kinder, d.h. die Schildkröte wird
396   BLOCKS FREE.          zum einfach steuernden Zeichenstift für die Erstellung von Grafiken

Speicherbereich[Bearbeiten]

Commodore Logo belegt folgende Speicherbereiche:

Bereich: 	Nutzung: 			Größe in KByte: 
0000-00FF 	Page 0 (Shared) 		0,25 
0100-01FF 	Stack 			        0,25 
0200-03FF 	Kernel internal storage 	0,5 
0400-07FF 	Textbildschirm (Matrix) 	1 
0800-0BFF 	Grafikmatrix 		        1 
0C00-0DFF	8 Sprites 			0,5 
0E00-0FFF	Logo internal storage 		0,5 
1000-1FFF	Recursion Stack 		4 
2000-4000	Grafikbildschirm 		8 
4000-AFFF	Logo Interpreter 		28 
B000-DFFF 	Nodespace	 		12 
E000-EBFF	Typecodes 			3
EC00-FDFF	Zeichenketten / Strings 	4,5 
FE00-FF00 	Input line 			0,25 
FF00-FF8F 	frei			        0,125 
FF90-FFFF	Kernel, 6510 vectors	        0,125

Beispiele[Bearbeiten]

Besprechungen und Literatur[Bearbeiten]


Quellen[Bearbeiten]

  1. "Logo - A Language for Learning - The Commodore 64 Logo Tutorial" Sprache:englisch

Weblinks[Bearbeiten]

Downloads


Artikel des Monats.gif Dieser Artikel wurde Artikel des Monats.