Archive for the ‘Software’ Category.

Klicken statt tippen

So ganz kann ich meine Neigung, den Computer lieber mit der Maus als der Tastatur zu bedienen, nicht unterdrücken. Obwohl ich in der DOS-Zeile aufgewachsen bin, lässt sich die Haptik einer Maus, mit der Tastatur einfach nicht erreichen, weswegen schon frühzeitig der Wunsch nach einer grafischen Oberfläche in mir aufkeimte, in der die grundlegenden TRIOS-Funktionen per Maus zugänglich gemacht werden sollten.

Der erste Versuch (im Basic 2.0 beigepackt) befriedigte nicht wirklich. Zu hässlich und unflexibel war das Ergebnis. Also einfach mal eine kleine Zeitreise in die Ära der Amiga und Atari's unternommen und einiges abgeschaut.

Das Resultat fühlt sich schon deutlich besser an und findet vielleicht den ein oder anderen Freund unter den Drohnen. Grafische Basis ist der Treiber, welcher auch beim Basic seinen Dienst verrichtet. Aber der Euphorie gleich Einhalt gebietend "ES IST KEIN WINDOWS", für den Hive aber ein nützliches Tool, für alle die lieber klicken statt tippen ;-)

 

 

Es kommt Bewegung in’s Spiel

Basic-LogoNachdem die ersten Versuche, Spiele mit einigen bewegten Objekten im Basic zu programmieren, zu der ernüchternden Erkenntnis geführt haben, das ein Basic-Interpreter, der auch noch in Spin programmiert wurde, viel zu langsam für solch ein Unterfangen ist, habe ich nach Wegen gesucht, dieses Manko irgendwie zu umschiffen. Also warum nicht alle Bewegung dahin verlagern, wo sie auch erzeugt werden soll, nach Bellatrix. Das hat mehrere Vorteile, erstens wird Regnatix nicht mit den Berechnungen für die Bewegung belastet, der Speicher in Regnatix bleibt frei und die Geschwindigkeit steigt dramatisch, da nicht jeder Befehl über den Bus laufen muss.

Das Ergebnis kann sich durchaus sehen lassen. Im Video ist das erste Level des Spieles Climber ,diesmal in Basic programmiert zu sehen, bei dem die Geschwindigkeit sogar drastisch reduziert werden musste. Im nächsten Basic-Update wird es möglich sein bis zu 8 Gegnerfiguren zu definieren , dabei muss sich der Programmierer um Kollisionsabfrage oder die Bewegung der Tiles nicht kümmern. Er gibt nur Startparameter ein und startet per Befehl die Bewegung, alles andere übernimmt Bellatrix.

Zugegeben, es ist kein Softscrolling aber es bewegt sich was ;-)

Video >>>>

 

Übrigens wird jetzt standesgemäß am Hive programmiert:

hive6hive2 HIVE1a

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


Beschreibung:mental Alpha V0.A
Zur Installation bitte im Verzeichnis DOC nachlesen!
mental Alpha V0.A 20.05.2013
Version:20.05.2013 vom: 20.05.2013
Dateigröße:4.66 MB

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.


Beschreibung:Star Trek Musik im DMP-Format
Star Trek Musik im DMP-Format 20-05-2013-dr235
Version:20-05-2013-dr235 vom: 20.05.2013
Dateigröße:14.71 kB


Beschreibung:1_der_weltraum_unendliche_weite Artikel im PDF-Format
1_der_weltraum_unendliche_weite Artikel im PDF-Format 20-05-2013-dr235
Version:20-05-2013-dr235 vom: 20.05.2013
Dateigröße:1.69 MB

Basic geht in die zweite Runde

Basic-LogoNachdem nun viele Stunden an Entwicklung verflossen sind, hat TRIOS-BASIC in der Version 2.0 das Licht der Welt erblickt und buhlt jetzt um die Gunst der Hive-User.  Dies ist auch der Versuch, alle die einen Hive haben aber mit Forth nicht so richtig warm werden oder nicht wissen, was sie jetzt mit ihrem Hive anstellen sollen, zum tüfteln zu animieren. Dabei soll TRIOS-BASIC keine Konkurrenz zu Forth oder anderen Sprachen sein. Vielmehr soll die Begeisterung, den Hive für seine Projekte zu nutzen geweckt werden. Es wurde versucht, die Syntax der Befehle so einfach und vom Ergebnis, so effizient wie möglich zu gestalten, damit auch ohne große Programmierkünste, etwas brauchbares entsteht. Mit Hilfe des Handbuches und den beigepackten Beispielen (z.Bsp. ist ein DMP-File-Player als Basic-Programm enthalten, welcher mit der Maus bedient werden kann), soll der Einstieg so einfach wie möglich sein. Für alle Hardcore-Basic-User ist auch eine Flashvariante verfügbar, um den Hive, ähnlich einem ehemaligen Homecomputer, als reinen Basic-Computer zu betreiben.

Im Download-Bereich wird es dazu regelmäßige Updates geben. Scheut euch nicht Fragen, Kritik oder gefundene Fehler loszuwerden. Niemand wird allein gelassen.

 

TriOS-Basic Version 1.10

Ist schon ein paar Tage her (hab gerade wenig Zeit) und die meisten werden es sich schon aus dem Forum besorgt haben. Kurz die Neuerungen in Stichworten:

  • Speichererweiterung auf 512kb -> Hinweis für Nutzer der Ramdisk-Funktion: Ram-Bank1 wird von TRIOS-Basic genutzt und überschrieben, also für Ram-Disk "NICHT" Ram-Bank1 benutzen
  • Anzahl der möglichen Basic-Zeilen wurde auf 999_999 erhöht (das sollte wohl reichen :D )
  • Stringvariablen verfügbar: Ab sofort werden Strings unterstützt (#a ... #z)
  • neue Befehle: -STR l, STR r, STR m (entspricht strleft, strright, midstr)
  • LEN(string) ermittelt die Länge eines Strings (die maximale Länge eines Strings darf 150 Zeichen betragen, längere Strings werden abgeschnitten)
  • STRCOMP(string1,string2) vergleicht zwei Strings und gibt entweder -1(strings sind gleich) oder 0(strings sind ungleich) zurueck
  • Input-Befehl um Stringeingabe erweitert
  • kleinere Fehler bei Windows-Funktionen beseitigt
  • Basicprogramme werden ab sofort im eRam abgelegt, dadurch ist der gesamte Regnatix-Speicher für's TRIOS-Basic frei (ca. die hälfte ist noch frei für Erweiterungen)

Wie üblich weitere Infos im Forum: TriOS-Basic


Beschreibung:TriOS-Basic
Basic für TriOS von Zille9 - Infos im Forum: http://hive-project.de/board/viewtopic.php?f=6&t=767
TriOS-Basic 2.002
Version:2.002 vom: 03.05.2013
Dateigröße:2.8 MB

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?’ »

Kleines Basic-Demo von Zille zu Fenstern und Sound

Sorry, das zweite Video kommt heute aus meinem Darkroom... ;) Naja, ich hoffe man kann dennoch ein wenig erkennen, zumindest habe ich die Boxen ordentlich aufgedreht, was am Licht gefehlt hat.

Mal ein paar Screenshots vom Basic:

Neue FemtoBasic-Version

Hab die Version selbst noch nicht getestet, aber die Änderungsliste klingt wirklich sehr vielversprechend.

Mehr im Forum.

Update: Also ich hab es mir gerade angeschaut: ES IST PHANTASTISCH! Integrierte Hilfe, Statuszeile, cooler Sound und viel Speicher frei. Echt, das im Autostart und man glaubt an einem alten Homecomputer zu sitzen. Wobei die Leistung sich so einfach anfühlt: ein Befehl (play "axe.dmp) und Basic spielt nebenher satte SID-Trackermusi ab, während der Basicinterpreter unbeeindruckt weiterläuft. So stelle ich mir die Nutzung der verteilten Fähigkeiten auf dem Hive vor. Wenn man die DMP's noch in mono abspielt, bleiben sogar noch drei Kanäle für Soundeffekte parallel zur Musik - hab ich nicht explizit getestet, aber sollte so sein und war so geplant mit den beiden SIDCog's.

Auch die Hilfe ist toll, sogar mit kleinen Beispielcodes - perfekt um sofort loszulegen. Ich hab das zwar den Hinweis auf Fenster in der Änderungsliste gelesen, aber nicht erwartet, dass Zille9 das schon im Basic selbst verwendet hat... :)

Schade das ich grad keine vernünftige Kamera hab, sonst würde ich das mal in einem kleinen Clip zeigen. Wirklich eine coole Sache!

TACHYON – Schneller als Licht

Nur mal um zu sehen, ob sich m in die richtige Richtung entwicklet, habe ich einfach mal einen Vergleich mit Tachyon gewagt. Tachyon habe ich dabei auf meinem Demoboard installiert, so dass beide  Systeme mit 5 MHz x16 laufen. Folgende Worte habe ich verwendet:

Tachyon:

: t1 1000000 0 DO I I + DROP LOOP ;

: t2 1000000 FOR I I + DROP NEXT ;

In m  sieht diese Definition folgendermaßen aus:

t1 1000000 0 do i i + drop loop ;

t2 1000000 for i i + drop next ;

Die Ergebnisse zeigen, dass meine erste selbst geschriebene Forth-VM so schlecht nicht ist:

Tachyon - t1: 11 Sekunden, t2: 11 Sekunden

m - t1: 8 Sekunden, t2: 7 Sekunden

Wie gesagt, kein repräsentativer Test, aber einfach mal interessant.

Jeden Tag ein gutes Wort: Der Screenbrowser

Aktuell entstehen die ersten nützlichen kleinen Tools direkt in m, also direkt autark auf dem Hive programmiert. Wenn ich in m teste und experimentiere, finden sich schnell Ecken und Kanten, welche umständlich und unpraktisch sind. So die Navigation in den vielen Screens auf dem Massenspeicher. Im Prinzip habe ich ja den gesamten Massenspeicher schon aus dem Bauch heraus in Bereiche geteilt: Continue reading ‘Jeden Tag ein gutes Wort: Der Screenbrowser’ »

Sound für mental

Dieses Wochenende wollte ich anfangen Soundfunktionen in mental zu integrieren. Der ursprüngliche Plan sah vor, zwei SIDCogs zu integrieren und diese durch einen eigenen Tracker zu ergänzen, um gleichzeitig Fx und Musik verfügbar zu haben, ähnlich dem Konzept für TriOS. Obwohl ich ja nun fast von einem Rudel "Basic-Hunden" auf dem Hive gehetzt bin ;) habe ich mir ewas Zeit genommen, um noch einmal genauer zum Thema Sound zu recherchieren.

Nun ja, mental ist schon cool, aber so ein stummes OS auf dem Hive ohne Sound ist keinen Pfifferling ist auf die Dauer ziemlich öde, wenn ihr mich fragt. Also war es gut, mal wieder zu kontrollieren, was Ahle2 im hohen Norden so treibt. Volltreffer: Das neue Zauberwort heißt  "Retronitus", aber hört selbst, was seine neue Soundengine (Beta) schon vollbringt:

Quelle: Retronitus-Thread im Parallax Forum

Ich sage nur eins:An mental lasse ich nur Wasser und Retronitus! Notfalls muss der Sound warten, bis Ahle2 fertig ist, und wenn es noch Monate dauert.

Es klingt wie ein Wunderwerk: Retronitus läuft auf einer Cog, bringt acht unabhängige Soundkanäle inklusive diverser Features mit und hat auch noch Platz in der Cog für eine Art Threading, um mit acht integrierten SLI-Thread-CPU's spezielle Mini-FX-Programme auszuführen. Natürlich gehört auch noch eine extrem platzsparende Tracker-Engine für Musik dazu.

Denkbar wären in mental getrennte Blockpuffer, um Retronitus einen parallelen Zugriff zu m auf SD-Card zu verschaffen. Mit dem Compiler könnte man den Wortschatz erweitern, um direkt Retronitus-Module aus Quelltexten zu compilieren und dank Screeneditor auf dem Hive auch direkt zu bearbeiten. Ist nicht meine Art soviel über ungelegte Eier zu gackern, aber die Soundengine für mental verspricht da ein interesantes Feld für Experimente zu werden. Nun, wir werden sehen.

Hydra-Buch und Hive-Programmierung

Immer wieder bekomme ich Mails mit Fragen zur Programmierung des Hive. Zu einigen Aspekten gibt es ja schon passende Tutorials, im Besonderen zu den speziellen Fragen wie im Hive die drei Propeller-Mikrocontroller zusammenwirken:

Für den Bereich der Gameprogrammierung gibt es ein wunderbares Buch zur Hydra-Spielkonsole, welche ja mit einem Prop arbeitet - also so eine Art Bellatrix. Das Buch erklärt, ausgehend von den Grundlagen des Enwurfs einer Gamekonsole auch sehr ausführlich die Programmierung von tile- und vektorbasierter Spielegrafik, bis hin zum Sound und zur Abfrage eines Gamepads - inklusive vieler Demos und kleiner Games. Das schöne an der ganzen Sache: Das Buch und die CD mit dem Democode ist frei als PDF erhältlich:

Wie einfach es ist, ein kleines Game für den Hive unzupassen, hat Volker im Forum in einem Minitutorial gezeigt, weshalb ich ihn hier einfach mal direkt zitiere: Continue reading ‘Hydra-Buch und Hive-Programmierung’ »

Es tut sich was…

Aktuell gibt es wieder neue Bewegungungen rund um die Programmiersprache Basic auf dem Hive. Einerseits arbeitet Zille9 an einer verbesserten Version des FemtoBasic für den Hive. Wenn alles klappt, werden auch Sound- und Grafikbefehle integriert, was den Hive mal ein wenig ausreizen würde und unkomplizierte Experimente verspricht. Die andere Geschichte ist das HBasic, an welchem PIC18F2550 arbeitet: Dieses verwendet einen eigenen PASM-Bytecode und als Programmspeicher den eRAM. HBasic ist aber noch in einer sehr frühen Phase und es gibt noch keine lauffähige Version. Die letzte lauffähige Version von FemtoBasic ist im Downloadbereich zu finden, aber da wird sich in nächster Zeit einiges tun - also immer mal im Forum schauen wie der aktuelle Stand ist!
Forum: FemtoBasic - Hive

Forum: HBasic

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’ »

Datagramme

Hauke hat in den Datagrammen der Busprotokolle einige kleine Fehler gefunden und gleich korrigiert. Zudem hat er die Darstellung mit passenden Impulsflanken aufgehübscht und einiges übersichtlicher gestaltet. Wer also am Bus schrauben möchte, sollte die Tabellen updaten.

Dank an Hauke für die Mühe.


Beschreibung:Tabellen
Bus-Datagramme, Pinbelegungen, Inlet
Tabellen 28-05-2012-dr235
Version:28-05-2012-dr235 vom: 19.05.2012
Dateigröße:76.09 kB

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.