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… 😉