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 😉
Neue Version, Detailinformationen zu den Änderungen im Forum. Alte Versionen sind natürlich immer noch auf der TriOS-Seite verfügbar. Änderungen im Überblick:
Futter für den Hive. Wie bei der ersten Toolbox genügt es den Inhalt des Ordners „SDCARD“ auf ein passendes Medium zu kopieren. Dieses mal ist das Paket durch die Mediendateien allerdings recht groß geworden, aber es lohnt sich. Wie gehabt, sind zu den Programmen wieder alle Quelltexte für eigene Experimente enthalten. Enthalten sind folgende Sachen:
Sounddateien im HSS, DMP (SID), WAV, YM und SFX-Format.
Ich habe gerade R48 von TriOS released. Diese Version enthält nun den Grafikmodus G0 – neben den verschiedenen Textmodi der erste standardisierte Grafikmodus auf dem Hive. Mit dem Tool „g0test“ kann der Modus getestet werden und man bekommt dort auch einen Eindruck von den Möglichkeiten. Der G0-Modus ist über das IOS direkt und sehr komfortabel in Anwendungen nutzbar. Als Einstieg für erste Experimente mag der Quelltext von g0test dienen.
So, nun ist also auch Grafik auf dem Hive so einfach wie die verschiedenen Soundformate nutzbar: Egal ob Diagramme, Kurven, Animationen oder Games – das kann jetzt alles sehr einfach und mit ordentlicher Darstellungsgeschwindigkeit realisiert werden. Der G0-Modus ist rasterorientiert, aber mit seiner superschnellen Vektorengine primär in Richtung Vektorgrafik gedacht. Die maximale Leistung erreicht er bei Vektorobjekten (g0_vec) mit einer Leistung von ~18.000 Linien pro Sekunde. Das sind natürlich Maximalwerte, wenn man diese Funktion in einer Schleife mit festen Parametern aufruft. Aber durch entsprechende Parallelisierung kommt man mit den Propchips durchaus auch real in diese Nähe, wenn es nötig sein sollte. Das Testprogramm spricht die G0 Funktionen ganz klassisch in einer einfachen Routine unter Nutzung nur einer COG an.
Momentan werkle ich am Grafikmodus 0 für den Hive. Kurz die Eckdaten:
TV-Modus 256 x 192 Pixel
Farben: Tile (16×16 Pixel) sind 4 aus 64 Farbe wählbar
Einbindung des Graphics-Objektes für schnelle Vektorgrafik
Animation: zwei Screens für flickerfreie Darstellung von Animationen
Einbindung der Grafikfunktionen per IOS
Keyboard ODER Maus verfügbar (beides geht nicht)
Bei der Darstellung von Vektorobjekten spielt der Hive so richtig seine Muskeln aus: über den Bus werden dabei nur Metadaten übertragen und die komplexen Anweisungen werden lokal in Bellatrix verarbeitet. So kann mit einem Befehl von Regnatix ein Vektorobjekt mit beliebigem Drehwinkel und Skalierung gezeichnet werden. Für meine Tests verwende ich ja gern das Vektorobjekt eines sechseckigen Sterns. Der Hive kann dabei ~1500 Sterne pro Sekunde zeichnen. Jeder Stern besteht aus 12 Linien, was eine Zeichenleistung von ~18000 Linien pro Sekunde macht! Na wenn das nicht geil ist, weiss ich auch nicht…
Alle Grafikoperationen sind nun im IOS direkt für die Anwendung verfügbar. Das nicht optimierte Testprogramm im folgenden Video ist nur 5,5 KByte groß und nutzt nur eine einzige COG in Regnatix – es sind also noch sehr viele Ressourcen frei! Zu sehen sind der Reihe nach alle grundlegenden verfügbaren Grafikoperationen und ein paar Gimmicks. Wie gesagt, handelt es sich nur um ein Testprogramm, welches ich bei der Enwicklung verwendet habe, um die Funktionen zu prüfen, weshalb es sicher keinen Schönheitswettbewerb gewinnt, aber es zeigt vielleicht ein wenig, in welche Richtung es geht.
Neuigkeiten von TriOS: Nach einiger Zeit der Arbeit am System erschien mir die allgemeine Struktur der Quelltexte zu unübersichtlich und zu aufgebläht. Viele Fragmente und Programme die eigentlich nichts mit dem System zu tun hatten, haben sich heimlich bei den Experimenten eingeschlichen. Dazu wollte ich endlich ein Bibliothekskonzept für die Quelltexte realisieren, da Brad’s Spin Tool ja nun die entsprechenden Möglichkeiten bietet. Also war eine umfangreiche Aufräumarbeit nötig, um dem Ganzen wieder die nötige Struktur und Klarheit zu geben. Zeit den Softwarebastelkeller aufzuräumen! 🙂 Was wollte ich also? Continue reading ‘TriOS – Bibliotheken’ »
Ein kleiner Etappensieg auf dem Weg zur Weltherrschaft: Ich habe PropForth in TriOS integriert. Klingt nicht sehr spektakulär, ist aber eine ziemlich coole Sache. Das Forth residiert dabei zusammen mit dem Loader im unteren EEPROM und ist somit sofort nach dem Einschalten des Gerätes nutzbar. Für die Nutzung von Forth ist es also nicht mehr nötig, einen ROM mit 64K zu verwenden.
Pünktlich vor dem ersten Glas Bowle zum Jahreswechsel habe ich mein R14-Board fertig bestückt und getestet. Nun tickt auch bei mir endlich eine Uhr im Hive. Um die Software von Stephan zu testen, habe ich gleich noch einen neuen Zweig zur Integration des RTC im TriOS im Repository eingerichtet. Und es funktioniert prima. 🙂 Fehlt jetzt nur noch eine Anzeige von Datum und Zeit in der Kopfzeile von Regime.
Eine funktionierende Version kann jetzt also unter branches/trios-rtc ausgecheckt werden.
Da ich beim programmieren mehr so ein einsamer Wolf bin, hab ich in Bezug auf eine Versionsverwaltung immer etwas mächtig geschludert. Hab mir aber vorgenommen mich zu bessern und will ja auch was dabei lernen… Also habe ich die Projektseite auf google-code auf den aktuellen Stand gebracht und mir vorgenommen, nur noch sauber mit dem SVN zu arbeiten. Macht natürlich nur Sinn, wenn noch mehr mitarbeiten, denn sonst bin ich einfach schneller so wie ich es lokal organisiere.
Auf google-code gibt es zusätzlich ein Wiki, welches sich gut für die TriOS-Dokumentation eignet. Außerdem findet sich dort ein Issue-Bereich, in welchem Fehler , Probleme, Ideen oder einfach nur Fragen verwaltet werden können.
Für die Einsteiger mit neuem Board: In der Sektion „Download“ auf der google-code-Seite finden sich immer aktuelle Archive mit den Installationsdateien. Wer TriOS nur installieren möchte, verwendet das BIN-Archiv ohne Quelltexte: dort enthalten sind die Binarys zum flashen in die drei EEPROMS und der Inhalt einer bootfähigen SD-Card. Aber ich glaub mal, das die meisten eh mehr in den Quelltexten wühlen wollen… 😉 Wer also selbst mit Hand anlegen möchte am TriOS, sollte sich eine aktuelle Quelltextversion auschecken. Ich hab zum einlesen mal ein paar Links dazu zusammengestellt – muss mich ja selbst erstmal ein wenig dazu belesen.
Da dank Frida nun die Bootoption von Administra bestens funktioniert, habe ich eine erste Arbeitsversion für einen Administra-Code mit integriertem SIDCog-Soundsystem erstellt. Geplant sind zwei getrennte SIDCogs, welche man in verschiedener Weise verwenden kann:
Irgendwann nach dem KC-Treffen möchte ich beginnen, dass bestehende Betriebssystem neu zu überarbeiten und eine erste Version des TriOS zusammenzustellen. Im folgenden meine groben Vorstellungen. Wie weit ich dabei komme und was letztlich dabei herauskommt, muß ich mal schauen. Ich wollte mal die grobe Struktur zur Diskussion stellen, velleicht gibt es ja noch interessante Ideen dazu. Wer Lust hat kann natürlich mitarbeiten, dann geht das Ganze schneller. Und frühzeitige Mitarbeit sichert auch die Möglichkeit der Einflußnahme, denn spätere Programme werden wohl auf dieser Version aufbauen.