Archive for the ‘Forth’ Category.

Forth: Experimente mit der P2 Hardware

Nix von mir: Hier führt Peter Jakacki die Möglichkeiten vor, interaktiv mit seinem TAQOZ-Forth mit der Hardware des P2 zu spielen. Ist ob der Länge etwas langwierig, aber als fortlaufende Videoserie mit dem Namen „P2 Live Forum“ zu verschiedensten Themen und mit Chat für interessierte Fragestellern durchaus ein sinnvolle Sache. Für mich genügt es als „Impulsgeber“, ich probiere dann lieber selbst.

Allerdings krankt TAQOZ scheinbar noch an einem alten Forthleiden: Eine seeehr dünne Dokumentation. Gerade die vielen Fortherweiterungen bringen sehr viel teilweise recht kryptische Worte mit, deren Bedeutung und Funktion man nicht alle mühsam ermitteln möchte… Aber alles ist in Bewegung, und vielleicht ändert sich die Situation noch – dann wäre TAQOZ eine wirklich brauchbare Variante, um mit dem P2 interaktiv zu arbeiten.

Das Forth ist übrigens als Bootoption direkt im P2 vorgesehen, und wird bei angeschlossenem Terminal an der seriellen Schnittstelle nach Abarbeitung anderer Bootoptionen mit der Eingabe „[>] [SPACE] [ESC]“ aufgerufen. Ein ebenfalls integriertes Minitorprogramm kann übrigens mit „[>] [SPACE] [CTRL-D]“ gestartet werden.

TAQOZ Doumentation (Google-DOC): https://docs.google.com/document/d/e/2PACX-1vQKKl_A9gQ8VooCfrLOqw6a_rp9ddyAqiFeo1RopL2AtnHTaWIfvojYq-yfNlqoPD81a2EU1EJsQpRG/pub

TAQOZ Forum: https://forums.parallax.com/discussion/167868/taqoz-tachyon-forth-for-the-p2-boot-rom/p1

Update#05: mentales Logbuch – Sternenzeit 20.180.428

 

Neues vom Raumschiff mental auf seiner Reise durch Zeit und Raum. Offensichtlich sind wir in eine kosmische Anomalie geraten und haben die normale vierdimensionale Raumzeit verlassen. Und offensichtlich hat uns diese Anomalie nach einem Monat der Irrfahrt wieder ausgespien und wir müssen nun erstaunt feststellen: Es sind in dieser kurzen Zeit fünf Jahr im normalen Universum vergangen. Wie ich darauf komme? Nun, mit Erstaunen habe ich festgestellt, dass der letzte sinnvolle Beitrag im Hive Blog zum Thema mental vom 20. Mai 2013 stammt. Wir haben jetzt Mai 2018. Und ich schwöre, ich habe den letzten Blogeintrag gerade erst vorigen Monat (in meiner relativen Zeit) geschrieben!

Und ehrlich, ich habe in diesem Monat ohne Unterbrechung im Maschinenraum des Sternenschiffs mental geschraubt und Gizmos ausgetauscht. Ehrlich! Aber der Reihe nach…

Weiterlesen: 3_Sternenzeit_20.180.428.pdf (9556 Downloads )

Update mental:  mental (28.04.2018) (3210 Downloads )

 

TriOS#05: PropForth – Teil 1 & Teil 2

PropForth unter TriOS: Installation, Multitasking, Implementierung auf dem Hive-Computer

Digitaler $%&°*#$-Vergleich und andere spaßige Sachen

Irgendwann will man es halt wissen: Wie schnell ist denn jetzt die selbst geschriebene Programmiersprache auf dem Eigenbaucomputer? Naja, halt der typische digitale $%&°*#$-Vergleich……;) Und da ich heut ein wenig Langeweile habe und draußen so trübes Wetter ist, wollte ich mich halt ein wenig an tachyonischen Geschwindigkeitswerten meines Forthsystems berauschen und ergötzen.

Nun gut, die Werte sind ganz brauchbar, obgleich ich da so ein verdammtes amerikanisches Forth kenne, welches da noch deutlich einen drauflegt. Hab noch keine Ahnung wie er das veranstaltet. Aber dafür ist der Hive mit mental völlig autark programmierbar, ohne einen Hostcomputer oder ähnliche feige Hilfsmittel. Ätsch! 🙂

Was ist also in dem Clip zu sehen?: Ein kleines Demo, welches die Funktion von meinem mental-Forth auf dem Hive-Computer zeigt. Nix großes, einfach nur zur Ansicht der Funktion des Quelltexteditors, Compilers und Interpreters am Beispiel eines „Hello World!“ und eines Fibonacci-Benchmarks mit ganz brauchbaren Werten für so ein Gerät.

Der Quelltexteditor läuft komplett im Bellatrix-Chip (der Hive basiert auf drei Mikrocontrollern) und kennt neben dem farbigen Modus zur Eingabe von Forth-Quelltexten auch einen reinen Textmodus. Mit dem Kommando „br“ (browse) wird der Screenbrowser aufgerufen um in den Screens zu „surfen“, diese zu editieren, speichern usw. Ist so ein typisches gewachsenes „Werkstatt-Tool“ und ungemein praktisch.

Wie man sieht, ist mental durchaus schon benutzbar und man kann schon völlig autark am Hive ohne einen Hostcomputer programmieren. Zudem belegt der Core von dem zu sehenden Forth gerade mal 3694 Bytes, mit den komfortablen Tools wie im Video sind es gerade mal 4432 Bytes! Hey, als Laie und für ein erstes selbst gestricktes Forth ist das ganz brauchbar!…:) Aber unabhängig davon ist mental noch weit entfernt von einem fertigen Status. Letztlich ist es ja auch nicht so wichtig, da es sich ja mehr um ein persönliches Lern- und Spaßprojekt handelt. Just for Fun!

Der erste Außeneinsatz

mental ist nun in einer startbaren Alphaversion angekommen und wird damit für erste Experimente in die freie Wildbahn entlassen, womit eine Minidokumentation fällig wird.

Verfügbar ist dieser „Erste-Schritte“-Text, eine umfangreiche Referenztabelle der aktuell implementierten Worte in mental und ein Text mit Überlegungen und Einsichten aus dem „Maschinenraum“ (1 – Der Weltraum, unendliche Weite) des Systems. Beide Texte beziehen sich auf die Alphaversion, können also in der weiteren Entwicklung von der Realität überholt werden. Zudem gibt es hier noch keine systematische Einweisung, sondern vorerst nur einige nutzbare Beispiele, die den Weg für den Neugierigen ebnen sollen. Es wird also noch nicht genau erklärt, wie diese forthähnliche Sprache im Detail funktioniert, sondern nur auf Besonderheiten und Abweichungen eingegangen.

Der erste Außeneinsatz… Weiterlesen

mental Alphaversion zum Experimentieren

Ich war die letzten Tage eine fleißige Drohne und habe ein nutzbare Version zusammengeschnürt und sogar noch ein paar Texte für den Einstieg geschrieben. Die spannenden Sachen wie Sound und Grafik fehlen noch, aber denen kann ich mich ja nun endlich zuwenden…

Link: Fred im Forum zum Thema für Rückmeldungen und Fragen

mental Alpha V0.A (1819 Downloads )

Der Weltraum. Unendliche Weiten. Wir schreiben das Jahr 2013.

emblem

So komme ich mir manchmal bei meinen Experimenten mit dem Hive vor: Allein TriOS als einfaches Mini-OS ist eine kleine Welt für sich und  mental erscheint mir wie ein Paralleluniversum…

Nun ja, diese aktuelle Version von mental bezeichne ich mal als Alphaversion. Startbar unter TriOS oder auch völlig eigenständig nutzbar, indem der Chipcode im Flash gespeichert wird. Eine Minidokumentation „Der erste Außeneinsatz“ ist ebenfalls verfügbar. Ohne Grafik und Sound kann man zwar noch nicht so viel spannende Sachen damit machen, aber das steht als nächstes auf dem Plan – immer schön einen Schritt nach dem anderen.

Im folgenden Text werde ich die Entstehung und inneren Mechanismen von mental ein wenig genauer beleuchten. Interessant für Neugierige, aber mit Sicherheit auch für Einsteiger in die Programmierung der Cogs in Assembler. Wer nicht so der Typ „Scotty“ ist und mental nur nutzen möchte, sollte besser nicht den Maschinenraum betreten und gleich mit dem Text „Der erste Außeneinsatz“ fortfahren! Alle Boardingenieure sind aber herzlich eingeladen zu einem Rundgang…

Alles begann im Jahr 2008…  Weiterlesen

Und hier noch, quasi als Rundumversorgung, die passende Musik für den Artikel, frisch am Hive aufgenommen, folgend die DMP-Dateien um die Musi selbst auf dem Hive mit dem SID-Player anzuhören.

Star Trek Musik im DMP-Format (2595 Downloads )

1_der_weltraum_unendliche_weite Artikel im PDF-Format (3270 Downloads )

Was ist Tachyon?

.:.:– TACHYON –:.:.

 

Hmm, hab ich doch in dem Beitrag zum Geschwindigkeitsvergleich glatt vergessen zu erwähnen was Tachyon überhaupt ist. Ok, das holen wir hier mal nach! Lassen wir einfach Peter Jakacki – dem Entwickler von Tachyon – zu Wort kommen: „TACHYON – A Fast and small Forth byte code VM„. Tachyon ist also wie m ein Forth-Derivat mit einigen wirklich interessanten Eigenschaften.  Das primäre Ziel ähnelt PropForth: Es soll ein interaktives Entwicklungswerkzeug sein, welches auf einem Propellerchip läuft und typisch über die serielle Schnittstelle und ein Terminalprogramm auf einem Hostcomputer bedient wird. Man kann es also nicht wirklich mit m und mental vergleichen, welches ja dem Hive mit seinen drei Propellerchips auf den Leib geschneidert ist. Im Gegensatz zu PropForth ist Tachyon sehr schnell und wahrscheinlich auch recht klein – genaue Zahlen zum Speicherverbrauch habe ich aber leider noch nicht. Da es aber ein klassisches Forthmodell ist, dürfte es auch mehr Speicher belegen als der m-Core, welcher ja viele Aufgaben nebenläufig auf die beiden Slaves verteilt. Continue reading ‘Was ist Tachyon?’ »

m: Weg mit dem nutzlosen Plunder…

Nach einer kreativen Pause nun weiter in diesem Film. Die letzten Tage habe ich mich intensiv jenen m-Funktionen gewidmet, mit welchen ich Quelltexte auf dem Massenspeicher bearbeiten, verwalten und auszuführen/compilieren kann. Geplant waren eigentlich FAT16/32-Containerdateien für ein Blockinterface. Diesen Plan habe ich aber aus verschiedensten Gründen verworfen. Ein gravierender Grund ist die fehlerhaften seek-Funktion, die relativ geringe Performance des FAT-Layers und der enorme Speicherverbrauch in Administra. Ganz nebenbei hat mich schon lange die mit FAT32 einhergehende Komplexität gestört. Es ist wie mit vielen Dingen im Computerbereich, die uns das Leben bequem gestalten: Diese Bequemlichkeit wird durch Komplexität erkauft, welche dann irgendwann immer schwerer beherrschbar ist.  Ein einfaches Blockinterface dagegen gibt alle Freiheit aber auch die Verantwortung die Daten selbst zu strukturieren. Wie man nun sinnvoll in einem solchen System Daten strukturiert, ist ein kleines Abenteuer für sich und wird mir wohl noch einige Ideen abverlangen. Genau das  richtige Experimentierfeld, um langweilige Abende zu füllen. Also frisch ans  Werk und weg mit dem komplizierten Plunder… 😉

m6m7m8

Continue reading ‘m: Weg mit dem nutzlosen Plunder…’ »

m: Also daran muss ich mich erstmal gewöhnen… ;)

Konsequente UPN-Syntax ist ja schick und einfach zu implementieren, wie ich im letzten Artikel beschrieben habe. Aber an einigen Stellen bürstet UPN echt gegen den Strich der langjährigen Konditionierung durch den Mainstream. So zum Beispiel bei dem cd-Kommando, mit welchem man im Verzeichnisbaum navigieren kann. So wird nun aus

cd system

durch die Konsequente Anwendung natürlich

system cd

Ich nehme das mal sportlich, und werde das erste Mal, wenn ich in einer Linux-Kommandozeile UPN eintippe rot am Kalender markieren als jenen Tag, an welchem ich mehr Zeit am Hive als unter Linux zugebracht habe. Naja und mal ehrlich, Infix kann und hat  ja jeder… 😉

Continue reading ‘m: Also daran muss ich mich erstmal gewöhnen… ;)’ »

Jeden Tag ein gutes Wort: perform und andere tolle Sachen


Weiter auf meinem Weg zur Weltherrschaft zu Forth einer forthähnlichen Sprache auf dem Hive. An sich funktionieren ja schon einige Sache bei m: Der Interpreter läuft, ausführbare Worte können compiliert und Quelltexte können in einem Screeneditor bearbeitet werden. Dennoch erinnerte ich mich an einige Leichen im Keller: Die Worte „token“ und „m“ enthielten noch als erste Fassung eine recht unübersichtliche Struktur. Nicht das diese Worte nicht funktionierten, aber irgendwie war die Realisierung nicht wirklich handlich und elegant.

Wir erinnern uns: Da m ein verteiltes System ist, enthält der Core in Regnatix keinen Parser für eine Eingabezeile und auch keine Worte für eine formatierte Ausgabe. Schließlich habe wir ja ein massiv paralleles System, soll sich doch Bellatrix um diesen Krempel kümmern, in Regnatix haben wir dafür keinen Platz! Und Bella kann sich auch wirklich viel besser um die Interaktionen mit dem Benutzer kümmern, da ja alle Ressourcen (Tastatur und Bildschirm) an diesen Chip angeschlossen sind. Continue reading ‘Jeden Tag ein gutes Wort: perform und andere tolle Sachen’ »

m: Lebenszeichen

Es scheint im Moment zwar etwas ruhig, aber ich arbeite aktuell intensiv an m. Allerdings brauche ich bald ein wenig Abwechslung und werde mich mal wieder ein wenig TriOS und Spin zuwenden. Dennoch hat m schon enorme Fortschritte gemacht, wie man auf den Screenshots sicher erkennen kann. So ist eine erste Version eines Quelltexteditors integriert, welcher komplett in Bellatrix läuft. Auch grundlegende SD-Funktionalitäten sind schon verfügbar (ls, lsl, cd) und die Quelltexte können bearbeitet und in einer Screendatei gespeichert werden. Der nächste Quantensprung wird mit Eingabeumlenkung und dem damit realisierbaren load-Kommando kommen. Dann können die Quelltexte auch den Interpreter/Compiler füttern. Es können also nicht nur die Quelltexte auf dem Hive bearbeitet, sondern auch compiliert und interpretiert werden.  Ach ja, aktueller Landmark: 3246 Bytes.

m2 m3 m4 m5

An einigen Stellen ist der Code aber noch nicht optimiert. Ich denke einige Codefragmente zur Kommunikation mit den Slaves können noch ausfaktorisiert werden um Speicher zu sparen. Auch das literal-Wort ist mir noch zu einfach, denn es compiliert momentan immer default ein Long-Literal in den Code, aber ich habe auch ein Word-Literal und ein im Code ingebettetes sehr platzsparendes 6Bit-Literal für Werte zwischen 0..63. Da ich momentan noch von Hand im Assembler compiliere, erledigt das noch mein Kopf, aber spätestens wenn es direkt aus dem Quelltext kommt, wird das ein Thema.

Ich habe gerade zur letzten Meldung zum Thema m vom 11. März zurückgeblätter und festgestellt, das noch wesentlich mehr hinzugekommen ist. Kurz in Stichpunkten:

  • for..i..next
  • if..else.then
  • do..i..loop/+loop
  • begin..leave..until/again
  • Systemcounter: cnt wait clkfreq
  • PASM-Code für externen RAM: x! x@
  • SDCard: ls lsl cd mount unmount ?mount
  • Screendatei: open close read write list scr! scr@ pos! scrnr scrmax
  • Editor: ed edrd edwr ed+ ed- ed0

Der Editor ist typisch Forth weniger ein monolithischer Code, sondern vielmehr ein Editorbaukasten. Mit „open work.blk ed0“ wird die Screendatei geöffnet, Screen 0 in den Editor geladen und der Editor selbst gestartet. Die Worte ed+/ed- rufen den nächsten/vorigen Screen im Editor auf. Änderungen werden mit „edwr“ auf SDCard geschrieben. Die Benutzung der Kommandos geht schon nach kurzer Zeit ziemlich flott von der Hand. Grundlegend sollte das reichen, sobald Quelltexte compiliert werden können, folgen dann bei Bedarf komfortablere Erweiterungen.

Ich gebe zu, das ist für Außenstehende ziemlich esoterisch und trocken, aber mir macht es viel Spaß. Außerdem war das eine gute Gelegenheit, sich intensiv mit PASM auseinanderzusetzen. Bin gespannt, wie das Abenteuer mit mental weitergeht.