|
GOSI - Grafisch Orientierte Sprache I
GOSI ist eine leicht zu erlernende Sprache mit Elementen aus der Sprache LOGO. Mit einfachen Befehlen kann ein Zeichenpunkt über den Bildschirm bewegt werden. Das Zeichnen von Grafiken ist somit sehr einfach. In GOSI können neue Befehle einfach trainiert werden. Programme und Daten können auf dem Kassettenrekorder gesichert werden. Die Arithmetik ist auf den Integer-Zahlenbereich beschränkt.
Systemaufbau
Zum Aufbau eines minimalen Systems, welches GOSI ausführen kann benötigt man folgende Komponenten:
Basisplatine BUS2 und eine Stromversorgung
Prozessor-Baugruppe Z80CPU
Speicher-Baugruppe ROA64
Baugruppe KEY und Tastatur
optional Baugruppe CAS und Kassettenrekorder
Auf der Speicher-Baugruppe ROA64 werden mindestens das Grundprogramm ab Adresse 0000h und das GOSI ab Adresse 2000h benötigt. Zusätzlich müssen ab Adresse 8000h mindestens 8 kByte RAM verfügbar sein.
Unterstützte Befehle und Funktionen
Eine Besonderheit von GOSI ist die im Gegensatz zu allen anderen Programmiersprachen die Darstellung aller Befehle und Funktionen in deutscher Sprache. GOSI kann nur mit Ganzzahlen rechnen, das Fließkomma-Format ist nicht implementiert.
Operatoren
4 Grundrechenarten + - * /
Modulo Operator
Logische Verknüpfungen
! - ODER-Verknüpfung
& - UND-Verknüpfung
˜ - NICHT-Verknüpfung
Vergleiche
< - Kleiner
> - Größer
<= - Kleiner oder Gleich
>= - Größer oder Gleich
= - Gleichheit
<> - Ungleichheit
Arithmetische Funktionen
SIN(x) - Berechnet 256*SIN(x)
COS(x) - Berechnet 256*COS(x)
Grafische Befehle
Mit den grafischen Befehlen wird die Turtle-Grafik (Schildkrötengrafik) gesteuert. Für die einige Befehlsworte sind jeweils Abkürzungen aus zwei Buschtaben möglich
VW x - VORWAERTS x - Schreitet x Schritte vorwärts
RW x - RUECKWAERTS x - Schreitet x Schritte rückwärts
LI x - LINKS x - Dreht den Zeiger um x Grad im Uhrzeigersinn
RE x - RECHTS x - Dreht den Zeiger um x Grad gegen den Uhrzeigersinn
SCHR16TEL x - Schreitet um 1/16 Schritt vorwärts
SA - STIFTAB - Senkt den Schreibstift, folgende Befehle zeichnen
SH - STIFTHOCH - Hebt den Schreibstift, folgende Befehle bewegen nur den Zeiger
MITTE - Der Zeiger wird auf die Mitte des Bildschirms gesetzt
AUFX x - Der Zeiger wird auf die angegebene x-Koordinate gesetzt
AUFY y - Der Zeiger wird auf die angegebene y-Koordinate gesetzt
AUFXY x y - Der Zeiger wird auf die angegebenen Koordinaten gesetzt
AK x - AUFKURS x - Setzt den Winkel des Zeigers, 0 ist rechts
LB - LOESCHEBILD - Löscht den Bildschirminhalt
LS - LOESCHESCHIRM - Löscht den Bildschirminhalt und setzt den Zeiger in die Mitte
BILD - Auswahl des aktuellen Bildschirms
CLRINV - Löscht die aktuelle Schreibseite
BLINKER x y - Setzt den Textcursor aus Spalte x (0..79) und Zeile y (0..7)
LINIE x1 y1 x2 y2 - Zeichnet eine Linie von x1,y1 nach x2,y2
STIFT n - Macht den Zeiger schreibend (0) oder löschend (1)
SEITE n m - Setzt die Schreibseite (n) und Anzeigeseite (m)
FLIP n m - Bestimmt die Austauschrate der Bildschirmseiten
Funktionen
TASTE - Liefert eine Zeichen von der Tastatur
TASTE? - Prüft ob eine Taste betätigt wurde
ZAHL - Wartet auf die Eingabe einer Zahl
ZZ(x) - erzeugt eine Zufallszahl bis x
XKO - Liefert die aktuelle X-Koordinate des Zeigers
YKO - Liefert die aktuelle Y-Koordinate des Zeigers
KURS - Liefert den aktuellen Winkel des Zeigers
PORT x - Liest den Wert an der Postadresse x ein
MEM x - Liest der Wert an der Adresse x aus dem Speicher
Variablen
SETZE "VAR x - Setzt den Wert der Variablen VAR auf n
:VAR - Liefert den Wert der Variablen VAR
Eingabe und Ausgabe
DR x - DRUCKE x - Gibt Werte oder Variablen auf dem Drucker aus
DZ x - DRUCKZEILE x - Wie oben jedoch mit Zeilenvorschub
ZEICHEN x - Gibt das zum ASCII Code gehörende Zeichen auf dem Bildschirm aus
PORT x y - Gibt den Wert y auf dem Ausgabeport x aus
MEM x y - Speichert den Wert y in der Speicheradresse x
DRUCKAN - Ausgabeumlenkung auf den Drucker
DRUCKAUS - Ausgabeumlenkung auf den Bildschirm
Strukturbefehle
WENN bed [] [] - Vergleich mit Programmblöcken für wahr und falsch
WH anz [] - WIEDERHOLE anz [] - Schleifenstruktur
PRUEFE bed - Setzt ein Internes Flag
WW - WENNWAHR - Testet das interne Flag und führt nachfolgende Befehle aus
WF - WENNFALSCH - Testet das interne Flag und führt nachfolgende Befehle aus
SO bed [] - SOLANGE bed [] - Führt den Programmblock aus solange die Bedingung wahr ist
Speicherverwaltung
LERNE name:par - Definition einer benannten Funktion
ENDE - Beendet das Lernen einer Funktion
RK - RUECKKEHR - Rücksprung aus eines gelernten Funktion
ZEIGE - Gibt alle definierten Funktionen und Variablen aus
VERGISS - Löscht Variablen oder gelernte Funktionen
BEWAHRE - Speichert alle Variablen und Funktionen auf Kassette
LADE - Lädt das nächste Programm von Kassette
TEST - Prüft ein auf Kassette gespeichertes Programm
CALL adr - Ruft ein Maschinensprache-Programm auf
Downloads
Software |
Verwendung |
|
EGOSI 1.1 EPROM 8 kByte |
EPROM zum Programmieren in der Sprache GOSI
Enthält die oben beschriebenen Funktionen, 8 KByte Binärfile zum Einsatz auf ROA64 |
|
EPROM GOSI 27 Seiten 1 MByte |
Handbuch von Graf Elektronik Systeme
Enthält die Beschreibung von GOSI und viele Beispiele für grafische Ausgaben und das Lernen von Funktionen. |
|
GOSI für Z80 52 Seiten 2,3 MByte |
Handbuch aus dem Francis Software Verlag
Enthält die Beschreibung von GOSI und viele Beispiele für grafische Ausgaben und das Lernen von Funktionen. |
|
GOSI Anleitung 26 Seiten 10,6 MByte |
Eine Einführung aus dem Francis Software Verlag
Enthält eine Einführung in die Programmierung von GOSI mit vielen Beispielen. |
|
|