Commodore Logo
Commodore Logo | ||
---|---|---|
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 | ||
Medien | ||
Sprache | ||
Information | Version A und 8 |
Allgemeines[Bearbeiten | Quelltext bearbeiten]
Herausgeber[Bearbeiten | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]
Es existieren die Version A und die aktuelle Version 8.
Vertrieb[Bearbeiten | Quelltext bearbeiten]
Der Preis betrug 1985 stolze 159 DM.
Beschreibung[Bearbeiten | Quelltext bearbeiten]
In Bezugnahme auf Commodore C64 Logo Tutorial[1].
Lieferumfang[Bearbeiten | Quelltext bearbeiten]
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 | Quelltext bearbeiten]
Minimum:
unterstützt werden:
Arbeitsweise[Bearbeiten | Quelltext bearbeiten]
Der Eingabeprompt der Logo-Umgebung ist das Fragezeichen ?
.
Alles was dahinter eingegeben wird, wird nach einem Druck auf die Taste RETURN vom Logo-Interpreter 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 einem 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 erfahrene Programmierer, die andere höhere Programmiersprachen wie BASIC, C, Pascal oder Assembler, usw. programmieren können, leicht durcheinander.
Wichtige Tasten[Bearbeiten | Quelltext 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 | Quelltext 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
(Einfarbenmodus) 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 | Quelltext bearbeiten]
Das Erstellen, Speichern, Laden und Löschen von Prozeduren bzw. Programme geschieht 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 mitNAME
aufgerufen werden.
Alternativ kann der Editor mit der zu bearbeitende Prozedur auch mitEDIT 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 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 im Umgang mit Prozeduren sind:
PO NAME
- Zeigt alle Befehle bzw. Aufrufe in der benannten Prozedur an - vergleichbar mit dem BASIC-Befehl: LISTPO 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 SpeicherER 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 im Winkel 2*B° nach rechts. Anschließend wird A um 1 erhöht und die Prozedur DEMO erneut aufgerufen.
Um eine gute grafische Figur dargestellt zu bekommen, sind einfach die Befehle HOME
und CS
vor dem Aufruf von DEMO einzugeben.
Befehlsübersicht[Bearbeiten | Quelltext 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 Zeichen "|" gekennzeichnet. Da Logo für Listen bei Kommandos eckige Klammern [] nutzt, kann die allgemeine Programmier-Syntax nicht angewandt werden!
Grafikbefehle[Bearbeiten | Quelltext bearbeiten]
Diese Befehle dienen für die Steuerung der Logo-Schildkröte (Sprite 0)
BACK / BK x
- Bewegt die Schildkröte zurückBACKGROUND / BG x
- Verändert die Hintergrundfarbe (0 bis 15)CLEARSCREEN / CS
- Löscht den GrafikbildschirmDOUBLECOLOR
- Zweifarbenmodus verwenden für 8×8-KachelDRAW
- 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:
- Zustand des Zeichenstifts PEN unten/oben (down/up) TRUE/FALSE
- Zustand der Schildkröte TURTLE sichtbar/versteckt (show/hide) TRUE/FALSE
- Hintergrundfarbe (background color) 0 bis 15
- Stiftfarbe (pen color) 0 bis 15 oder -1 für Löschstift (PENERASE)
- Grafikbildschirm (screen mode) NODRAW / DRAW
- Farbmodus (color mode) SINGLECOLOR / DOUBLECOLOR.
- Aktueller Bildschirm: TEXTSCREEN, FULLSCREEN or SPLITSCREEN
- Hintergrundfarbe Textbildschirm (text background color / TEXTBG) 0 bis 15
- 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 Ausrichtung der Schildkröte als Winkel in °.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 (Winkel von 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 LinienPENDOWN / 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 (Winkel von 0 bis 360 °).SETHEADING / SETH x
- Dreht die Schildkröte absolut (Winkel von 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 sind in runden Klammern zu setzen!SETY x
- Bewegt die Schildkröte absolut in Y-Richtung.SHAPE
- Zeigt Nummer des aktuell verwendeten 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öteYCOR
- 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 | Quelltext bearbeiten]
+
Addition-
Subtraktion=
Vergleichsoperator Gleichheit, Zuweisung*
Multiplikation/
Division>
Vergleichsoperator größer<
Vergleichsoperator kleinerATAN x y
- Arcustangens; retourniert einen Winkel von 0 bis 360°.BITAND x y
- bit-weise Verknüpfung zweier Zahlen mit ANDBITOR x y
- bit-weise Verknüpfung zweier Zahlen mit ORBITXOR x y
- bit-weise Verknüpfung zweier Zahlen mit XORCOS x
- COSinus-Funktion des Winkels x von 0 bis 360°.INTEGER x
- Ausdruck in eine Ganzzahl wandeln, die nächstkleinere ganze Zahl einer Fließkommazahl wird ermittelt.NUMBER? Ausdruck
- Funktion, ob der Ausdruck eine Zahl ist; Rückgabe TRUE/FALSE.QUOTIENT x y
- Gibt bei einer Division zweier Zahlen x/y, den ganzzahligen Wert zurück.RANDOM x
- Liefert eine Zufallszahl als positive Zahl im Bereich von 0 bis exklusive Eingabewert xRANDOMIZE x
- Legt den Ausgangspunkt einer Zufallszahlenreihe fest (seed), mit dem optionalen Parameter x, einer positiven Zahl größergleich 0, wobei der Aufruf dann komplett in runden Klammern stehen muss.REMAINDER x y
- Ermittelt bei der Division von x/y den Rest.ROUND x
- Rundungsfunktion .0 bis .49 abrunden .5 bis .9 aufrunden.SIN x
- SINus-Funktion des Winkels x von 0 bis 360°.SQRT x
- Wurzelfunktion; vergleichbar SQR.
Hinweis: Negative Werte sind in runde Klammern zu setzen!
Zeichenketten-Funktionen[Bearbeiten | Quelltext bearbeiten]
=
- Entweder Zuweisung von Variableninhalten oder Vergleichsoperator (Gleichheit).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); retourniert 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; retourniert TRUE/FALSE.LPUT Element1 Element2
- Bildet eine Liste aus zwei Elementen, wobei Element1 eine Liste sein muss.MEMBER? "Ausdruck1 "Ausdruck2
MEMBER? "Wort1 [Wort1 Wort2 ...]
- vergleicht den Ausdruck1 (Zeichen oder Wort) mit dem Ausdruck2 (Zeichen oder Liste, die sich in eckigen Klammern [] sich befindet; retourniert TRUE/FALSESENTENCE / 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; retourniert 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 fassen Wörter zu Wortlisten zusammen.
Hinweise:
- Da ein Leerzeichen in Logo auch als Befehlstrennung dient, können Leerzeichen in Zeichenketten nicht einfach verwendet werden!
- 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.
Anweisungen[Bearbeiten | Quelltext bearbeiten]
LOCAL "Variable
- Lokale Variablendeklaration als temporären Variable mit beschränkter Sichtbarkeit in der aktuellen Prozedur.MAKE Variable Ausdruck
- Globale Variablenzuweisung: Weißt der Variable den Ausdruck (Zahl, Zeichen, Zeichenkette, Liste) zu.THING "Variable|:Variable
- Liefert den Inhalt der Variable.THING? "Variable|:Variable
- Überprüft, ob Variable ein Zahlenwert enthält; retourniert TRUE/FALSEALLOF Vergleich1 Vergleich2
- Ergibt TRUE, wenn beide Vergleiche wahr (TRUE) sind - entspricht der logischen Verküpfung AND.ANYOF Vergleich1 Vergleich2
- Ergibt TRUE, wenn einer der beiden Vergleiche wahr (TRUE) ist - entspricht der logischen Verküpfung OR.IF Vergleich ...
- Bedingte Ausführung:
IF Vergleich THEN Befehl1 ELSE Befehl2
- Wenn der Vergleichsausdruck TRUE ergibt, wird Befehl1 ausgeführt, sonst Befehl2.
IFFALSE / IFF ... TEST
- Wenn-falsch-Vergleich; alternativ mit TEST.IFTRUE / IFT ... TEST
- Wenn-wahr-Vergleich; alternativ mit TEST.NOT
- Operator negiert das Ergebnis des folgenden Ausdrucks, vergleiche dazu 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 | Quelltext 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 | Quelltext bearbeiten]
CONTINUE / CO
- Führt eine Prozedur oder ein Programm weiter aus, welches 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 | Quelltext 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 Textbildschirm 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 Feuerknopf von Joystick in Port 1/2 mit x (0 oder 1) gedrückt wurde; retourniert TRUE/FALSE.NOPRINTER
- Deaktiviert den PRINTER-Modus.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; retourniert 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 statt auf dem Bildschirm.RC?
- ermittelt, ob ein Tastaturzeichen (aus Tastaturpuffer) eingegeben wurde; retourniert TRUE/FALSEREADCHARACTER / RC
- Liest das älteste der eingegebenen Zeichen aus dem Tastaturpuffer; Eingabefunktion für eines Taste - ähnlich wie GETREQUEST / RQ
- Eingabefunktion - ähnlich wie INPUT; Rückgabe erfolgt als Liste.SETDISK x
- Gerätenummer (8-15) des Diskettenlaufwerks festlegen.
Datei- und Diskettenoperationen[Bearbeiten | Quelltext bearbeiten]
BLOAD "Name
- Lädt die Daten an einen bestimmten Speicherbereich, z.B. für Sprite-Daten oder Maschinenspracheprogramme.BSAVE
- Speichert einen bestimmten Speicherbereich ab, siehe Beispiel:BSAVE "ASSEMBLER.BIN $ "C000 $ "C1FF
CATALOG
- Anzeige des Directorys einer eingelegten Diskette.DOS [Kommando:...]
- Eingabe von Floppy-Befehlen (funktioniert genauso wie unter BASIC bzw. CBM-DOS!)DOS [N0:NEUE DISK,01]
- Formatiert eine Diskette.DOS [C0:DATEI1.LOGO=0:DATEI2.LOGO]
- Kopiert eine Datei.DOS [R0:PROGRAMM.LOGO=PRGM.LOGO
] - Benennt eine Datei um.DOS [S0:TESTDATEI.LOGO]
- Löscht eine 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 namens 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 in eine Datei namens Name.SAVEPICT "Name
- Speichert ein Bild in eine Datei namens Name.
Weitere Befehle[Bearbeiten | Quelltext bearbeiten]
GO Name
- Springt zu einem benannten Label oder Prozedur.GOODBYE
- Reset der Logo-Umgebung (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 in angegebener Anzahl die Prozeduren bzw. Kommandos innerhalb der eckigen Klammern [].RUN
Ausdruck - Wertet den angegebenen Ausdruck aus - 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 einer Befehlsliste verwendet werden, wie sie auch bei einigen Befehlen verwendet werden.
Spezial-Befehle[Bearbeiten | Quelltext 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äßem Gebrauch von .DEPOSIT abstürzen!.EXAMINE Name "Adresse
- Untersuchen von Speicherbereichen mit optionale Angabe einer Speicheradresse (vergleichbar mit PEEK).GCOLL
- Löst eine Logo-eigene 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 Festlegen von Einstellungen zu Logo-Kommandos oder allgemeiner Eigenschaften..OPTION "DRAW 0 2
- Beispiel verändert die Standard-Hintergrundfarbe für den Grafikbildschirm auf Rot.- 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 oder 1); 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 dem 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 | Quelltext bearbeiten]
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
Speicherbelegung[Bearbeiten | Quelltext 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 | Quelltext bearbeiten]
Besprechungen und Literatur[Bearbeiten | Quelltext bearbeiten]
- Dietrich Senftleben: "Start mit Commodore-Logo"; Vogel-Verlag, 1985
- Clemens Wittwehr: "Spiel und Aktion mit Commodore-Logo"; Vogel-Verlag, 1985
- Schuppar Berthold: "Logo - Programmierkurs für Commodore 64 Logo und Terrapin Logo (Apple II)"; Reihe: "Programmieren von Mikrocomputern" - Band 14; Vieweg 1985
- Mark Eckenwiler (Hrsg.):" Logo - A Language for Learning" (The Commodore 64 Logo Tutorial); 1982/82
- Thomas Milton Kemnitz et al: "Kids working with computers! - The Commodore Logo Manual"; 1985
- Andrew Keith: "Logo for the C64", aus Compute!, Ausgabe 55, Dezember 1984
Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ "Logo - A Language for Learning - The Commodore 64 Logo Tutorial"
Weblinks[Bearbeiten | Quelltext bearbeiten]
- Commodore Languages List by Dan Fandrich
- Commodore 64 LOGO – Turtle Graphics for the C64
- Logo Kurs - Happy Computer: "Der Einstieg für Einsteiger oder Die Geburt der Schildkröte"; Ausgabe 03/1985
- Downloads
- C64Games.de - Spiel Nr. 6053 Version A
Dieser Artikel wurde Artikel des Monats. |