SymbOS - es geht weiter...

  • Nach 5 Jahren Pause (KITT und die Zeitmaschine waren schuld) hab ich es nun endlich geschafft, wieder an SymbOS weiterzuarbeiten. Nachdem ich im Spätsommer zur Eingewöhnung eine neue App (Conways Game of Life) dafür programmiert hatte, geht's mit dem Betriebssystem wieder vorran. Irgendwie hatte ich mich früher immer an einem Multiline-Texteingabe-Widget für die GUI vorbeigemogelt. Dabei ist das eigentlich ein recht wichtiger Bestandteil, denn nur damit kann man mehrzeilige Texteingaben tätigen. In modernen Betriebssystemen sind diese Elemente nichts anderes als vollständige kleine Texteditoren, und sowas sollte in SymbOS eigentlich auch nicht fehlen. Der Grund, warum ich das solange nicht implementiert hatte, ist der, daß es eindeutig das umfangreichste GUI-Widget ist und somit auch am meisten Speicher kostet. Das mußte ich dadurch lösen, daß Teile des Desktop-Managers nun in die zweite 64K-Ram Bank verlagert werden. Da hier kein direkter und damit schneller Zugriff mehr auf Anwendungsdaten möglich ist, werden dort nur Routinen für Benutzerinteraktionen reingelegt (der User ist eh lahm ;) ).


    Wie dem auch sei, nach einem Monat Rumgecode gibt es schonmal einen Zwischenstand:


    http://www.youtube.com/watch?v=JfeIJmwv7QM


    Die meisten Funktionen sind nun implementiert:
    - Auto-Wordwrapping (entweder am Fensterrand oder an einer definierbaren Position)
    - unbegrenzte Zeilenlängen, korrekte Beachtung von Zeilenvorschüben
    - Cursor-Navigation (CTRL+Pfeiltasten zum schnellen Springen zwischen Wörtern und Textabschnitten)
    - Textmarkierung (SHIFT+Pfeiltasten)
    - Cut/Copy/Paste/Delete/Select all (CTRL+X/C/V/A)
    - volle Mausunterstützung (Cursor setzen, Textmarkieren inklusive Scrollen, Context-Menü zum Bearbeiten, Mausrad-Unterstützung)


    Außer Undo-Funktion und Wort-Markierung durch Doppelklick arbeitet das Widget nun eigentlich 100%ig genau wie die heutigen Textboxen aktueller Benutzeroberflächen. Es bleibt allerdings ein GUI-Widget und keine Textverarbeitung, d.h. es sind schon ein paar Abstriche da. So ist die Textgröße derzeit auf 16KB und 8000 Zeilen beschränkt. Es muß noch die Möglichkeit implementiert werden, alternative Fonts zu nutzen, damit z.B. auch Quelltext-ähnliche Texte mit festen Zeichenbreiten vernünftig angezeigt werden können. Ein paar Bugs gilt es auch noch zu fixen.


    Ich hoffe jedenfalls mal, daß ich Ende Dezember wieder eine neue SymbOS-Preview-Version (2.1) releasen kann.


    CU,
    Prodatron

  • Sehr schön! Ich freue mich nicht nur, davon bald ja mehr zu hören, sondern ...


    Nachdem ich im Spätsommer zur Eingewöhnung eine neue App (Conways Game of Life) dafür programmiert hatte


    ... schreibe dazu gerade einen Artikel. Gibt es deine App schon irgendwo zu laden?

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Notepad sieht doch richtig klasse aus! Sehr erfreulich das an SymbOS weiterentwickelt wird.


    Ich hoffe jedenfalls mal, daß ich Ende Dezember wieder eine neue SymbOS-Preview-Version (2.1) releasen kann.


    Freue mich auf das Release!

  • ... schreibe dazu gerade einen Artikel. Gibt es deine App schon irgendwo zu laden?


    Hört sich interessant an! So allgemein oder was spezielles?
    Die App für SymbOS hab ich offiziell noch nicht released. Es müssen noch zwei Bugs gefixt werden, und ich möchte sie außerdem noch auf Multithreading-Betrieb umstellen. Derzeit läuft alles im Haupttask, ich möchte den Feld-Generator aber in einen eigenen Task auslagern, der mit niedriger Priorität läuft, um zu demonstrieren, daß in diesem Falle trotz 100%iger CPU-Nutzung das System nicht unter Last steht.


    Ich hab den derzeitigen Stand aber mal angehangen, als DSK und als einzelne Files. Das DAT-File muß im selben Verzeichnis wie das EXE sein, hieraus werden die vordefinierten Figuren nachgeladen sowie die Feld-Presets.


    Kurze Anleitung:
    - unterm Spielfeld werden die Regeln definiert (übrigens ein recht exklusives Feature). Standard ist ja bekanntlich die 23/3 Regel. Es gibt aber auch andere interessante Regeln, am faszinierensten von den Alternativen finde ich die Copyworld-Regel 1357/1357, bei der sich das Ausgangsfeld nach mehreren Generationen in alle vier Richtungen dupliziert. Daß es auch Häckchen für 9 Nachbarn gibt, ist noch ein Bug (ups! :rotwerd: ).
    - rechts die Option "Torus" definiert, ob das Feld an den Rändern endet, oder ob man hier auf der anderen Feldseite wieder "herauskommt"
    - darunter stellt man ein, ob man mit der Maus auf dem Spielfeld einzelne Zellen setzt/löscht oder vordefinierte Figuren einfügt.
    - die Liste mit den Figuren ist ziemlich lang und enthält so ziemlich alle bekannten, sinnvollen Figuren (Quelle: http://www.bitstorm.org/gameoflife/lexicon/ ); es handelt sich hier ausschließlich um 23/3-Figuren
    - mit "Random" wird das Feld zufällig gefüllt, mit dem Slider stellt man die Dichte ein
    - "Clear" und "Start/Stop" sind selbsterklärend
    - im "File"-Menü kann man Felder speichern und laden, im Preset-Menü sind ein paar vordefinierte Felder vorhanden


    Dann mal viel Spaß :) Der CPC ist natürlich nicht der schnellste, im WinApe hatte ich da gerne mal den Turbomode eingeschaltet.


    Und das hier geht mit der SymbOS-App leider nicht :mrgreen: :mrgreen:
    http://www.youtube.com/watch?v=DD0B-4KNna8


    CU,
    Prodatron

  • Hört sich interessant an! So allgemein oder was spezielles?


    Conway wird am 26.12. 75. Zu dem Anlass will ich auf Telepolis mal ein bisschen über das Phänomen zellulärer Automaten und KI nachdenken (und dabei zu der Feststellung gelangen, dass das ganze Leben halt doch nur ein Spiel ist, dessen Regeln sich algorithmisch beschreiben ließen, kennten wir nur die Programmiersprache). :D


    µP

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Cool - ich verfolge das Projekt ja immer noch mit großem Interesse :) Das wohl geilste Betriebssystem aller Zeiten!

  • Das wurde ganz schön knapp mit der 2012er-Deadline, aber jetzt hab ich's doch noch gerade so geschafft.


    Ein Preview kann nun hier heruntergeladen werden:
    http://www.symbos.de/files/symbos21-preview.zip


    Das DSK enthält:
    - die aktuelle SymbOS CPC 2.1 version ( RUN"SYM" )
    - das neue Notepad (APPNOTEP.EXE)
    - nochmal das noch nicht releaste "Conways Game of Life" (APPGLIFE.EXE)
    Alle drei sind noch Betas und daher auch noch etwas buggy.


    [Blockierte Grafik: http://www.symbos.de/gfx/preview/notepad1.gif]
    [Blockierte Grafik: http://www.symbos.de/gfx/preview/notepad2.gif]


    Notepad hat noch keine eigenen Features ("Edit"-Menü ist noch ausgegraut), bietet aber die volle Funktionalität des Multiline-Textinput-Controls inklusive verschiedener Fonts. Ich hab hierzu mal ein paar zusammengestellt, die ich noch von früher gefunden hatte. Einige davon wurden von Trebmint mit SymStudio konvertiert und könnten noch etwas angepaßt werden.


    Das Textinput-Control wird quasi genauso bedient wie die Dinger in modernen GUIs. Neben den Shortcuts CTRL+C/X/V/A kann Text mit Shift+Cursor markiert werden, Control+Cursor springt im Text herum, mit der Maus kann man sowohl Text markieren als auch mit der rechten Maustaste das Context-Menü zur Bearbeitung öffnen. Es wird die SymbOS-Zwischenablage verwendet, d.h. man kann Texte auch zwischen Fenstern und anderen Applikationen hin- und herkopieren (einfach mal Notepad mehrfach starten und ausprobieren).


    SymbOS ist damit natürlich auch wieder etwas größer geworden, weshalb jetzt einige Anwendungen leider nicht mehr auf einem nackten CPC-6128 ohne jede Speichererweiterung laufen werden (Notepad läuft aber noch auf einem unerweiterten 128K-System).


    Wenn jemand komische Bugs findet, würde ich mich über eine Rückmeldung freuen :)


    CU,
    Prodatron

  • Seltsam.
    Ich hätte schwören können, daß ich es auf DEINER SF2 Workstation
    schon am Laufen hatte.
    Hab mir NotePad heute auf meine Mini WSF2 kopiert.
    Beim Start
    1Meldung: Das Programm ist nicht ausführbar -> OK geklickt.
    2Meldung: braucht eine neuere Version von Symbos
    bitte aktualisieren Sie...
    ???
    Braucht man neue ROMs ? Hatte ich es bei Dir zu Testzwecken
    von der Diskette gestartet?
    Ich weiß es nicht mehr...


    Stefan

  • Moin moin :) Das neue Multiline-Textinput-Control, das von Notepad genutzt wird, ist erst in der aktuellen 2.1 Preview-Version enthalten. Du mußt SymbOS also von Diskette starten (die Version im ZIP-File) und kannst dann Notepad laden.
    Aber der 2.0 gibt es eine Versions-Kontrolle, die verhindert, daß Applikationen, die neuere Versionen voraussetzen, in älteren gestartet werden können (was oft zum Absturtz führen würde). Daher die Fehlermeldung.


    CU,
    Prodatron