Sie
sind hier Programmieren |
![]() |
|
Es wird sicher Benutzer geben,
die auf fertige Programme von MOTRON zurückgreifen. Ebenso
kann der Anwender aber auch die vollen Fähigkeiten dieser
Sprache nutzen und sein spezielles Programm schreiben. Alle
Möglichkeiten hierzu sind vorhanden. Ablauffähige BASIC-Programme arbeiten zeilenorientiert. Jede Zeile benötigt am Anfang eine Zeilennummer. Die Zeilen werden in aufsteigender Reihenfolge abgearbeitet. Um eine Zeile zu löschen wird nur die Zeilennummer alleine eingegeben. Da der Editor des Prozessors 8052 und seiner Derivate nur zeilenorientiert ist und nur einfaches "Zeichen-Löschen" zulässt, ist eine komfortable Bearbeitung im System selbst nicht möglich. Das macht man besser in einem Zeileneditor. Mit dem ProgTool wird dann dieses Programm auf das
Zielsystem (z.B. BasicMaster) geladen. Oder man kann direkt aus der
Zwischenablage mit <shift><Einfg> oder Normalerweise wird man wie folgt arbeiten: |
![]() |
Editieren | Mit dem gewohnten ASCII-Editor |
![]() |
Verbindung herstellen | Com / Baudrate |
![]() |
Einstellungen | RAM / ROM / MTOP |
![]() |
Download | z.B.
MOTRON's ProgTool mit automatischem REMKILL (PC -> Controller) |
![]() |
Test | |
![]() |
Autostart | Der Start ohne PC |
| Das System meldet sich nach dem Einschalten der Spannungsversorgung selbständig über die serielle Schnittstelle 0 (SIO 0). Diese Schnittstelle ist beim BasicMaster auf einem 9-pol. Sub-D-Stecker, beim StepCon auf dem 10-poligen Pfostenstecker K2 herausgeführt. |

Am Bildschirm kommt die Meldung

| Sobald der BASIC-Prompt (>) erscheint ist das System bereit, Befehle anzunehmen. Als erstes Zeichen wird immer ein XON gesendet, um die Kommunikation mit dem Hostrechner freizugeben. |
| Das Speichermodell des Prozessors zeigt 3 Speicherbereiche, von denen für den Programmierer nur der Speicherbereich im RAM und im EEPROM zugänglich ist. Der Bereich der DBY ist zwar zugänglich, erfordert aber tiefere Kenntnisse. Der Bereich der CBY ist fest ins ROM gebrannt. |


Beispiel:
MTOP=4FFFH
Nach
jedem Systemstart oder Reset testet der Basic-Interpreter den
externen Speicher.
Die Adresse des Speicherplatzes, der die obere
Grenze des verfügbaren Speichers darstellt,
wird der
Systemvariablen MTOP zugewiesen. Der Interpreter benutzt
ausschließlich den Adressenbereich,
der unterhalb von MTOP
liegt.
Das
externe Daten-RAM
wird nach dem Einschalten nur bis zum Wert von MTOP gelöscht.
Damit kann bei einem gepuffertem RAM verhindert werden, dass BASIC nach
Netz-Ein Datenbereiche löscht,
die der Anwender schützen
möchte. Wenn
ein Teil des Speichers für andere Zwecke reserviert bleiben
soll,
kann MTOP auf eine niedrigere Adresse gesetzt werden.
Weist
man MTOP eine
Adresse oberhalb des RAM-Adressenbereichs zu, meldet der
Interpreter
einen MEMORY ALLOCATION ERROR.
Für
den Entwickler ist es wichtig, genügend Speicher für
sein aktuelles Programm
zu haben.
Wenn z.B. das Programm 5AFFH
groß ist, aber der MTOP auf 4FFFH eingestellt ist, gibt es ebenso
einen MEMORY ALLOCATION ERROR.
Beispiel: Der Programmiererr versucht das Programm vom Rom ins RAM zu laden und MTOP ist zu klein:
>ROM
>XFER
>RAM
>MEMORY ALLOCATION ERROR.
Im Menüpunt 'Programmiertools' findet man nützliche Helfer:
Mit REMKILL werden aus dem Text alle Kommentare gefiltert.
Kommentare
werden mit ' (Hochkomma) oder
; (Strickpunkt) vom Programm-Code getrennt und beziehen sich immer nur
auf eine Zeile.
REM selbst wird nicht gefiltert, damit man auch
gewollte Kommentare übertragen kann.
Außerdem wird ein
einfacher Syntaxcheck durchgeführt
(Ob die Zeilennummern aufsteigend sind oder ob am Zeilenende ein
korrektes Zeichen steht.)
REMKILL erstellt eine neue Datei, (*.Z) ohne Kommentar, die nur temporär gebraucht wird.
Mit
DENUM (Denumber)
werden im
Programmcode in einem vorgewählter Bereich alle Zeilennummern
gelöscht, die keine Sprungziele sind.
Das Ergebnis wird in eine
neue Datei geschrieben, als Hilfe zum Neumummerieren.
Mit
VARLIST (Variablenliste) wird eine Liste der
Programmvariablen erstellt. Gleichzeitig wird überprüft, ob
die Syntax eingehalten wird.
Variable unterscheiden sich in MCS-BASIC
nämlich
nur im ersten und letzten
Buchstaben und in der Anzahl der Zeichen.
Das
Ergebnis wird in eine neue Datei geschrieben.

Nach
beendetem Test wird die Autostart-Kennung
einprogrammiert. Autostart bedeutet, dass das Programm nach Netz-Ein
selbstständig anläuft.
Ohne diese Autostart-Kennung müsste
man das Programm mit RUN über das Terminal starten. MTOP kann im
Programm verstellt werden.
|
Byte 8000H = 34H |
Autostart nach Netz-Ein) |
|
Byte 8003H = 3FH |
Low-Byte von MTOP |
|
Byte 8004H = 0FFH |
High-Byte von MTOP |
|
Byte 8010H =55H |
Ein gültiges Programm ist im
E(E)PROM |
Beispiel:
PUSH
8000H,34H:CALL 554BH
' setzt das Autostart-Byte.
PRINT
XBY(8000H)
‘ kontrollieren, ob richtig geschrieben
Sobald
in der Adresse
8000H nach dem Einschalten der Wert 34H gelesen wird, startet das
System das
im (E)EPROM gespeicherte Programm automatisch nach einem
Netz-Ein.
In
den Adressen 8003H
(H-Byte) und 8004H (L-Byte) kann zusätzlich ein Wert für die
Variable MTOP
angegeben werden. Wenn der Wert kleiner ist, als der
systeminterne MTOP=4FFFH, so wird MTOP auf den neuen Wert gesetzt.
Reicht beim Programmieren der RAM-Bereich für Programm und Strings
nicht aus, kommt die Fehlermeldung "memory allocation error".
MTOP muss
dann passend vergrößert werden.