m: KC-Treffen am Horizont

Aktuell geht es in großen Schritten vorwärts, obgleich ich in der Woche überhaupt keine Zeit zum programmieren habe. Einige Tools wie dump und .s (gibt den Stackinhalt aus) vervollständigen das System und damit kann ich nun unabhängig von Spin debuggen. Das einzige Stück Spin zum starten von m sieht so aus:

CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000

VAR ' forth-parameterblock
long start ' mental parameter
long error ' errorcode

OBJ
vm1: "m-vm1-run-4"

PUB Main
  start := vm1.get_start
  waitcnt(cnt + clkfreq)
  cognew(vm1.get_cbase,@start)

Also nur ein paar Byte Spin um m in Betrieb zu nehmen! Das Schöne an forthähnlichen Systemen ist ja, dass man schon in dieser frühen Phase mit ihnen arbeiten kann. Es ist wie Lego: mit ein paar Bausteinen kann man schon etwas bauen. Kommen weitere hinzu, vergrößern sich die Möglichkeiten.

So ein neuer Baustein, welchen ich am Wochenende hinzugefügt habe, ist create. Dieses Wort ist zuständig für die Verarbeitung der roten Worte, mit denen ein neuer Wortheader im Wörterbuch erzeugt wird. Mit test1 ; kann so ein neues Wort mit dem Namen test1 erzeugt werden, welches mit dem Semikolon abgeschlossen wird. Besagtes Semikolon beendet den Compilervorgang, compiliert ein Exit-Kommando in das Wort und aktiviert dieses. Ab jetzt ist es mit words anzeigbar und wenn man das Kommando test1 aufruft, wird es ausgeführt.

Nächster Schritt wird das Wort compile um die grünen Worte im Quelltext in ein Wort compilieren zu können. Damit sind dann erste funktionale Worte möglich. Bin mal gespannt, wie weit ich bis zum KC-Treffen komme… 😉