TRIOS-Basic bekommt Pickel ..ääh Pixel -> Version 3.0 steckt in den Geburtswehen

Auch das TRIOS-Basic Karussell dreht sich munter weiter. Durch die Labortests des Micromite beflügelt, entschloss ich mich, auch dem HIVE-eigenen Basic eine Funktionsspritze zu verpassen. Bisher war es nur möglich Teilbasierte Grafiken auf den Bildschirm zu zaubern. Spätestens, wenn es darum ging mathematische Kurven zu plotten oder auch nur einen simplen Kreis auf die Mattscheibe zu bringen, war das Ende der Fahnenstange erreicht. Glücklicherweise gibt es pfiffige Programmierer, in diesem Fall Kuroneko, der einen Grafiktreiber entwickelte, der (unverständlicher weise) fast unbeachtet im Netz schlummerte und nur darauf wartete für den Hive seine Muskeln spielen zu lassen. Mit seiner Auflösung von 320×256 Pixeln und 15 Vordergrundfarben (mit Blinkattribut 31) und 8 Hintergrundfarben entspricht er auffällig den Spezifikationen eines KC85/2..4 . Um diesen nutzen zu können, wurde im Basic ein neuer Befehl geschaffen, der es erlaubt zwischen den Grafiktreibern hin und her zu schalten. Da die Änderungen etwas umfangreicher waren, um das allgemeine Handling der Treiber zu vereinheitlichen erfuhr TRIOS-Basic einen Versionsaufstieg. Im folgenden sind einige Neuerungen zusammengetragen:

  • -Der Befehl Mode erlaubt das Umschalten der Grafiktreiber, es gibt insgesamt (bis jetzt) 3 Grafikmodi
  • -0=Standard Basic-Treiber, 1=320×256 Pixel-Treiber mit 31 Vordergrund-und 8 Hintergrundfarben, 2=512×384 Pixel-Treiber mit 2 Farben
  • -Strings werden jetzt in der korrekten Schreibweise verarbeitet (A$=“Test“, C$(1,1)=“Test2″ usw.)
  • -Bitoperationen sind jetzt direkt verwendbar (Print 12<<8, b=12&7 usw.)
  • -Kreiszahl PI jetzt zusätzlich zum Zeichen auch als „PI“ unterstützt (das erleichtert die Portierung fremder Programme)
  • -Funktion SQR jetzt auch in FN (FN SQR(34)) verwendbar, Wurzelzeichen bleibt aber weiterhin aktiv
  • -Durch die Stringverarbeitung bedingt, werden Hex-Zahlen jetzt mit # dargestellt (Print #5F67)
  • -Der Befehl BIT setzt ein bit in einer 32-Bit-Variablen (entspricht dem Propellerbefehl |< bzw. >|)
  • -Der Farbbefehl COL hat seinen dritten Parameter verloren, es wird nur noch die Vordergrund-und Hintergrundfarbe angegeben (COL 13,0)
  • -Grafikfunktionen Circ, Rect, Line haben nur noch im Modus 1 und 2 Wirkung, der Plot-Befehl funktioniert aber in allen Modi’s
  • -Behebung von Fehlern in der For-Next- und der Input-Routine

Lissajous

Ein kleiner Ausblick gefällig? Lissajous Figur mit TRIOS-Basic (Modus 1) 🙂

In puncto Geschwindigkeit schlägt TBASIC zwar keine Rekorde aber im Vergleich zum KC85/4 (zumindest im Emulator) schlägt er sich wacker und gewinnt die meisten Grafiktests.

Das zweite Bild zum Beispiel schafft der Hive in 3Minuten und 22 Sekunden, der KC85/4 braucht 9 Minuten 21 Sekunden also fast dreimal so lange. Selbst Micromite benötigt für das gleiche Bild 2 Minuten 44 Sekunden, da seine Rechengeschwindigkeit extrem durch die langsame Datenübertragung auf dem I2C-Bus ausgebremst wird. Es bleibt also dabei, Trios-Basic ist sowas von Retro 😉

3d-funkt

Diese Funktion diente als Benchmarktest für TRIOS-Basic, KC85/4 und Micromite

Einen besonderen Dank möchte ich an Kuroneko senden, für den zur Verfügung  gestellten Grafiktreiber !

Zille9

Was kostet der Hive?

Also ich würde sagen:“Auf jeden Fall reichlich Nerven“. Seit der Assimilation des Micromite in seiner Grundkonfiguration habe ich versucht, auch die verschiedenen Grafikmodi zu übernehmen, welche Oldbitcollector für seine Companion-Version schon eingearbeitet hat. Dabei stellt die Hive-Philosophie der geteilten Aufgaben ein teilweise erhebliches Problem dar. Wie beschrieben hängt der (die das ?..) Micromite via I2C-Verbindung am Hive (Administra-Port). Gerade beim Modus 4 (Tile,-Sprite Grafik) erweist sich die Bit- und Byte Hin- und Herschieberei der Daten auf dem Hive-Bus von einem Propeller zum Nächsten als besonders nachteilig. Das Ergebnis sind zum Teil extreme Performance-Einbußen. Um diesen Modus nutzbar machen zu können, werde ich wohl ganz von vorn anfangen müssen, dachte ich mir und experimentierte ein wenig mit einem Grafiktreiber, derer mit 512*384 Pixel und 2 Farben daherkam herum. Diese Versuche brachten endlich wieder ein paar Erfolgserlebnisse hervor. Die Auflösung ist für Grafikanwendungen sehr gut geeignet und lässt sich mit dem MMBasic recht einfach für eigene Zwecke nutzen. Zur Veranschaulichung habe ich mal drei Bildschirmschnappschüsse angehangen.

Pixel4

Moire-Muster in Basic programmiert 🙂

Pixel2

… ein paar Kreise …

Pixel5

Und was mich  besonders überrascht hat (wegen seiner einfachen Portierbarkeit vom KC85/2..4) das Programm Globus.

IMG_1136

Einen ähnlichen Treiber mit einer dem KC85/2…4 zumindest annähernden Auflösung und 4 wählbaren Farben wurde ebenfalls nutzbar und bietet die gleiche Funktionalität (plus 2 zusätzlichen Farben).

Die Opferung diverser Nervenzellen war also nicht ganz umsonst und ich mache weiter … auch mit dem Modus 4.

Es gibt wie immer viel zu tun… was kostet der Hive ? … ist mir doch egal 😉

Zille9

Das Hive-Microleidoskop

Sinnlos aber hübsch anzusehen, ein Kaleidoskop mit dem Micromite am Hive 🙂

Widerstand ist zwecklos…

…dachte ich aber manche Spezies zeigen sich erstaunlich widerstandsfähig, wenn es darum geht, in das Kollektiv aufgenommen zu werden. Aber fangen wir ganz von vorn an.

MicromiteNachdem (der, die, das ?) Micromite erfolgreich assimiliert wurde, war es an der Zeit, eine Testumgebung für den Patienten zu erschaffen. Entstanden ist ein Erweiterungsboard, welches direkt am Hive oder am Venatrix-Erweiterungsbus (ja.. dieser existiert momentan nur als Testgerät und ist noch nicht über das Alpha-Stadium hinweggekommen) betrieben werden kann und ähnlich dem Micromite-Companion, ein Steckboard beherbergt, das für erste Experimente herhalten soll.

Die Anpassung an Hive- bzw. Venatrix-BUS erfolgt über Jumper. Zusätzlich besteht die Möglichkeit, das Testboard (eine 3,3V Spannungsquelle vorausgesetzt) vollkommen Hive-unabhängig zu betreiben. Eine Terminalverbindung erfolgt dann mit dem Prop-Plug-Anschluss (rechts im Bild). Nach erfolgreicher Inbetriebnahme und Korrektur eines (bei meinen Projekten mittlerweile schon obligatorischen) Fehlers im Layout konnte das erste Testprojekt anlaufen. Um meinen Netzwerk-impotenten Hive zu heilen erstand ich in der Bucht zwischenzeitlich zwei niedliche kleine WLAN-Seriell-Platinchen mit dem ESP8266-Chip Onboard. Dieser soll auf einfachste Weise eine WLAN zu Seriell-Verbindung herstellen können, ohne das man sich mit Netzwerkgedöns herumschlagen muss. Klingt gut, also zwei paypalisiert und ran an’s Werk. Ganz so simpel stellte sich die Angelegenheit dann doch nicht heraus. Trotz lumpiger 4-Draht-Verbindung, wollte keine Reaktion auf AT-Befehle erfolgen. Schon fast am verzweifeln, spielte ich einfach mit den Baudraten herum (obwohl überall im Netz nur 57600 oder 115200 angegeben waren). Und ei gucke da, bei 9600 kam auf den AT-Befehl ein lesbares OK zurück. Was soll das denn, dachte ich so. Hatte ich wieder ein Freitags-Nachmittags-Schlechtwettermodell erwischt? Nach weiterer Recherche im Netz stieß ich auf einen nicht dokumentierten Befehl, der es erlaubt, die Baudrate des Moduls zu ändern. Das war ja einfach, hat mich aber mehrere Stunden Grübelei und wieder ein paar Haare gekostet. Das Verbinden mit meinem Router war dann problemlos, nur was jetzt?

Nun wurde es spannend, denn Oldbitcollector hat sich im Basic des Micromite, einen IRC-Clienten gebastelt und genau den wollte ich testen. Guckst Du unten 🙂

Es funktioniert ……

IRC3

 

 

 

 

…. die Welt kann so schön sein 😉

– oder Widerstand ist zwecklos 🙂

Zille9

BASIC mal anders…oder wie der Hive auszog, den (die?) Micromite zu assimilieren!

Wenn man so im Netz unterwegs ist, um neue Welten zu erkunden und fremde Zivilisationen zu assimilieren, ist es schon beeindruckend, wie groß die Retro-Computer-Fan-Gemeinde doch ist und welch grandiose Ideen in so manchen dunklen Kämmerlein das Licht der Welt erblicken. So zum Beispiel das schon hier im Forum von Oldbitcollector präsentierte Mini-Computerboard auf Propellerbasis, welches sich eines microsoft-kompatiblem BASIC’s in einem PIC32 bedient.

Der Pic32-Chip, welcher den Namen Micromite trägt und als terminalbasiertes Minimal-Basic-Computersystem konzipiert, an fast jeden Microkontroller angeknüpfelt werden kann, ein kompletten BASIC-Interpreter ohne Beschränkung auf Zeilennummern mit VT100-kompatiblen Editor daherkommt, etliche Grundroutinen zur Ansteuerung von 1-Wire, I2C, Infrarot- , LCD-Display, Keypad, Servos und was weis ich noch alles, mitbringt, machte mich neugierig. Also beim großen Elektronik-Versender einen entsprechenden Chip bestellt und mit (seit langer Zeit ungenutztem) PicKit3 die Firmware auf den Pic gebrutzelt. Da die Außenbeschaltung extrem simpel ist, war ein Aufbau auf Steckbrett schnell erledigt, Terminal am PC gestartet und… boa eeey, Basic, wie zu MS-Dos-Zeiten.

Wie schon erwähnt, ging Oldbitcollector noch einen Schritt weiter und ließ Micromite und Propellerchip eine Einheit werden. Herausgekommen ist ein minimalistischer Computer im Retrostyle, mit professionellem Basic-Interpreter, der selbst das TRIOS-Basic alt aussehen lässt. Geschwindigkeitsmessungen der verschiedenen Benchmarkprogramme für Basic-Interpreter bescheinigten dem (oder der?..) Micromite eine über 40-fache Geschwindigkeit im Vergleich zum TRIOS-Basic. Das hat mich noch neugieriger gemacht und ich beschloss , Micromite mit dem Hive anzufreunden.

Das Prinzip der engen Bindung ist dabei sehr simpel. Gesteuert wird der (oder die?) Micromite über eine serielle Verbindung vom und zum Propeller-Chip. Dieser beinhaltet die nötige Software für die Kommunikation, Tastatur, VGA und eine I2C-Slave-Schnittstelle, mit welcher (und das ist das eigentlich geniale) die Funktionen im Propellerchip angesprochen werden, die nicht im Micromite vorhanden sind (z.Bsp.SD-Card-Zugriff).

Dabei kommt die Struktur des Hive, diesem Konzept entgegen, weil z.Bsp. die Fat-Engine in Administra, VGA- und Tastaturtreiber in Bellatrix läuft . Dadurch musste zwar das Programm aufgesplittet werden, was aber massiv Platz in jedem Chip für Software-Erweiterungen lässt. Regnatix übernimmt, wie immer das Zepter und steuert das Ganze.

Einzig, die Tatsache, das Regnatix keine freien Ports besitzt, ist etwas ungünstig, da die I2C-Abfragen von Administra (hier hängt der (die) Micromite I2C-technisch am Hive) zu Regnatix transferiert werden müssen. Das kostet viel Zeit bei umfangreichen I2C-Sequenzen, wie es zum Beispiel bei Grafikfunktionen der Fall ist. Als universell programmierbares I/O-Modul mit den genannten Funktionen ist es aber sehr nützlich und eine super Erweiterung für den Hive. Die Assimilierung ist in den Grundzügen gelungen (siehe Bild) und funktioniert tadellos.

SAMSUNG

 

PS.:Wenn jemand eine Idee hat, wie man Regnatix noch zwei freie Ports abverlangen kann (eigentlich nur einer, da Port24 für die LED schonmal ein Kandidat wäre) melde sich bitte, das sollte doch zu schaffen sein :-).

Zille9

007-lizenz-2

Hier nun das gesamte Aufbaututorial für den Hive-Computer. In zwölf Folgen werden wir in aller Ruhe und Ausführlichkeit die Retro-Bastelkultur pflegen.  Ich habe einfach den Aufbau der aktuellen Platinenversion aufgezeichnet und endlos langhin gelabert. Draus geworden ist so etwas wie ein Videoblog, und nebenher hatte ich so auch die Motivation, alle Testprogramme auf den neusten Stand zu bringen und an vielen Stellen zu erweitern. Interessant mit Sicherheit für alle Einsteiger in die Technik und bestimmt auch ein Spaß für so machen versierten Retrofan – hoffe ich mal… 🙂

Continue reading ‘’ »

012 – Lizenz zum Löten! – Das Maker-Netz

Ab mit dem selbst zusammengelöteten Homecomputer ins Internet! Ok, viel geht momentan noch nicht, aber immerhin: über IRC können wir ja schon kommunizieren, und IRC ist ja als Urgestein im Internet in seiner Benutzung fast schon ein Bekenntnis zur Graswurzelbewegung. Nun ja, und wenigstens der Computer ist dabei garantiert frei von NSA Spionagesoftware… 😉

Worum geht es also? In dieser Folge dreht sich alles um das Netzwerkinterface im Hive und da gibt es eine Menge Fragen zu klären: Was muss beim Aufbau beachtet werden? Wie kann es getestet werden? Wie wird es im TriOS konfiguriert und welche Dienste kann man momentan nutzen? Und vielleicht ist es auch der Einstieg, um selbst das eine oder andere Tool zu schreiben: ein kleines Mailprogramm, oder eine Möglichkeit, zwischen den Hives verschlüsselt zu kommunizieren? Möglichkeiten gibt es genug…

Mit dem Netzwerkinterface ist dieses Aufbaututorial nun auch an seinem Ende angelangt – unser Eigenbaucomputer ist fertig! 🙂

Dem Hive unter’s Röckchen geschaut ..

Bei meinem Versuch, den Hive als ultimative Messstation (boa, ein Wort mit drei ess) auszubauen, bin ich im überteichseitigen Forum auf den Tread Propalyzer gestoßen. Dies ist ein minimalistischer Logic-Analyser auf Propellerbasis, wobei der Propeller alle an seine Pins (mit Ausnahme der RX und TX-Pins) geratenen Pegelwechsel über ein entsprechendes PC-Programm sichtbar machen kann. In mir keimte die Idee auf, mit Hilfe der Venatrix-Erweiterung, die Signale im Hive sichtbar zu machen und so seiner Bus-Quasselei zuzuschauen. Zugegeben, der Pegelwirrwar sieht im ersten Moment recht konfus aus, macht aber Sinn, wenn man die Pinbelegung kennt und so die Signale zuordnen kann.

Hivealyzer

Hier mal ein Schnappschuss.

P0-P7 – Hive-Bus

P25 – BusClk

P26 – WR-Signal

P27 – HS-Signal

P28 – I2C – SCL

P29 – I2C – SDA

P24 – PropSel (Propeller-Select-Signal)

P8-P23 PortB und PortC des Venatrix-Propellers (in diesem Falle unbenutzt, da diese in Venatrix als Port-EA benutzt werden)

Schön zu sehen, wie der Hive mit seinen Knechten (Administra und Bellatrix) redet und unterdessen der I2C-Bus freudig vor sich hin plaudert.

Als Analysewerkzeug ist dieses kleine Tool beim Verständnis der internen Zusammenhänge sicher gut zu gebrauchen und die Venatrix-Buserweiterung hat ihre erste Aufgabe 🙂

Plexus – Fontastisch mit Signalcharakter

Eine etwas seltsame Überschrift wird sich der Leser sicher denken. Bei der Liste der Neuerungen von Plexus 2.1 wird aber der Sinn schnell klar. Bisher war mir das Ziel hinter Plexus noch nicht ganz bewusst, bis mir die Idee kam, aus dem Hive ein Schweizer Taschenmesser für den eifrigen Elektronikbastler zu machen, der alles unter der Haube haben soll, was man so als Hilfsmittel im Elektronikbastelbereich gebrauchen kann. Als erste Erweiterung entstand ein Signalgenerator (nach Johannes Ahlebrand). Dieser erzeugt verschiedene Signalformen inklusive Rauschen bis zu einer Frequenz von 7,5Mhz (lt.J.Ahlebrand) und gibt dieses Signal über den Hive-eigenen Audioausgang aus. Weitere Programm-Module sollen folgen und den Hive als Arbeitstier im Elektronikbereich etablieren, mal sehen, was wird.

Optisch hat sich auch einiges geändert, so ist es jetzt möglich, unterschiedliche Fontdateien als Systemfont zu definieren. Um die mitgelieferten Fonts den eigenen Bedürfnissen anpassen zu können, wurde ein einfacher Fonteditor entwickelt. Dieser kann auch benutzt werden, um die mit TRIOS-Basic mitgelieferten Fonts zu bearbeiten (lediglich die Endung DAT in FNT ändern und der Font ist auch im Plexus verwendbar und bearbeitbar).

Plexus2_1

Hier die Liste der Neuerungen bzw.Korrekturen

-Titel- und Statusleiste aufgelockert, es gibt eine einfache und eine erweiterte Ansicht

-Explorerfenster hat jetzt eine eigene Statusleiste zur Anzeige des Verzeichnispfades

-Verwendung von Fontdateien möglich

-Fonteditor zur Bearbeitung der Fontdateien vorhanden

-Signalgenerator mit fünf Signalformen (1Hz bis 7,5 MHz) vorhanden

-Umstieg von Plexus nach TRIOS und umgekehrt möglich. Es ist nun möglich mit Alt-Gr+F12 zu TRIOS zu wechseln. Möchte man zurück zu Plexus gibt es im Plexus-Ordner ein Programm „GoPlexus.Bin“

-Fehler der ein Long zu langen Regflash.Bin behoben. Durch einen selbst eingebauten Fehler war die Trioseigene Regflash.bin für Plexus nicht nutzbar. -> Danke an Kuroneko

-Textausgabe jetzt nur noch in Großbuchstaben (um Platz im Fontsatz für zusätzliche Icons zu schaffen)

-diverse kleine Fehler behoben

 

Ich wünsche Euch viel Spaß mit der neuen Version

Euer Zille9

 

PLEXUS-Update (3856 Downloads )

Neues TriOS, neues GIT

Nach der Veröffentlichung der neuen TriOS-Version ist diese nun auch auf dem GIT-Server eingearbeitet. Neben TriOS sind dort auch die wichtigsten anderen Software-Projekte des Hive  (Basic, Plexus und die 3 Toolboxen) mit dem gerade aktuellen Stand hinterlegt. Damit haben wir nun die Chance, gemeinsam an diesen Projekten Änderungen vorzunehmen. Das funktioniert allerdings nur, wenn alle, die an den o.g. Projekten mitarbeiten, ihre Änderungen in die GIT-Repositories einchecken. Weitere Informationen gibts unter „Software-Verwaltung“ und im dazugehörigen Foren-Thread.

Man lernt ja nie aus…

Wer seinen Download von R57 schon getätigt hat, bitte noch einmal aktualisieren. Leider hat sich ein Fehlerteufel eingeschlichen und einige Bin’s (perplex, ftp, ipconfig, irc) waren nicht im Paket.

—————————————————————

Man lernt ja nie aus: Ursache ist in diesem Fall mein (noch) mangelndes Verständnis der Versionsverwaltungen bei einzelnen Details. Ich habe den Export der Version durchgeführt, bevor die neue Version per Commit im zentralen Repository eingepflegt war. Damit waren die entsprechenden neuen Bin’s zwar physisch in meiner Arbeitsversion, aber nicht mehr im Export. Ich dachte: Export ist Export – da wird halt alles ohne die tausenden versteckten SVN-Gizmos in den Exportordner kopiert. Weit gefehlt, es wird quasi die aktuell gültige Revision – was ja noch R56 war – exportiert! Naja, nicht ganz, denn auch die exportierten Bin’s waren ja an vielen Stellen schon auf dem Stand R57 bzgl. der Änderungen. Nur neu hinzugefügte Dateien wurden noch nicht exportiert, da noch nicht „offiziell“ eingepflegt. Jaja, mühsam ernährt sich das Eichhörnchen…

So zumindest bei SVN/Tortoise. Wie das dann bei GIT wird, werde ich mit neuen Fehlerteufeln ergründen… 😈

TriOS – R57

Lange überfallig: eine neue Version von TriOS. Momentan zu einem recht ungünstigen Zeitpunkt, da wir ja mit einem Umzug von SVN zu GIT experimentieren. Aber es waren einfach noch zu viel Code in der Queue.

Was gibt es an Neuerungen:

  1. PlexBus
  2. Netzwerkcode
  3. Dokumentation
  4. BIN/SOURCE-Paket

Mit dem PlexBus können nun zum Beispiel Erweiterungen wie die Sepia-Karte oder die kleine Joystickkarte von Zille9 angeschlossen und im System verwaltet werden. Passend gibt es das Tool „perplex“, um manuell mit dem I/O-Bus zu experimentieren. Zudem enthält die Toolbox einige kleine Programmierbeispiele in Spin für Einsteiger und auch TriOS-Basic und die Plexus-GUI können ja schon damit umgehen.

Endlich Netzwerkcode! 🙂 Der Code von Jörg war auch ein entscheidender Grund für die Veröffentlichung, da ich eine Integration für die nächste Folge im Videotutorial brauche. FTP und IRC-Client sind nun in dieser TriOS Version enthalten. Einstellungen der Netzwerkparameter (IP, Maske, Gateway…) erfolgen über das Tool „ipconfig“.

Ach ja – Stichwort Dokumentation: Alle Dokumentationen sind nun in den Ordner „doku“ gewandert und haben eine neue Struktur bekommen. Ich denke so lässt sich das besser verwalten und pflegen.

BIN und SOURCE Pakete: TriOS gibt es nun in zwei Paketen. Das BIN-Paket ist für reine Nutzer gedacht und enthält nur die Dokumentation, Flashdateien und alle Dateien um eine SD-Karte für TriOS zu erstellen. Das geht schnell und ist sehr übersichtlich – ein paar Klick’s und fertig ist das Update.

Im SOURCE-Paket befinden sich zusätzlich alle Quelltexte und die Skripte um automatisch das System komplett zu compilieren.

So, das waren die wichtigsten Neuerungen. Zudem sind natürlich wieder viele kleine Änderungen und Fehlerbereinigungen enthalten.

Viel Spaß! 🙂

TriOS (PropForth, Standard Regime) Bin (6370 Downloads ) TriOS (PropForth, Standard Regime) Source (5200 Downloads )