FLEX versus CUBIX

  • Wenn man sich mit historischen Computern auf Basis der Motorola 6809 beschäftigt, dann kommt man nicht an FLEX vorbei.



    FLEX ist ein Disk-Operating-System (DOS) und wurde 1976 von der Firma TSC (Technical Systems Consultants) entwickelt.

    Die erste Version von FLEX hieß Mini-FLEX und lief auf der Motorola CPU 6800.

    Aus dem Mini-FLEX wurde etwas später FLEX 2 entwickelt.

    Als Motorola die 6809 brachte, wurde FLEX angepasst (FLEX 9)



    FLEX hatte eine sehr große Anhängerschaft.

    Es gibt eine FLEX Version für die meisten Computer auf Basis des 6809.

    Und es gibt sehr viel Software und Utilities für FLEX.

    Auch viele Compiler und Interpreter.



    Unterschiede zwischen FLEX und CUBIX:


    Beide DOS System benötigen im Betrieb 8KB Speicher. Aber im Gegensatz zu CUBIX das auch im ROM läuft, braucht FLEX 8KB RAM für den Betrieb. In dem 8K Speicherbereich den FLEX benötigt ist aber auch wirklich ALLES enthalten, inklusive System Variable, Stack, Buffer für Disk Sektoren und sogar ein Bereich für ladbare Treiber und Utilities! Außer den 8KB RAM benötigt FLEX keinerlei Speicher im System.


    Anpassung des DOS an eine neue Hardware: CUBIX bekommt man als Source Code, das ist absolut perfekt weil man es anpassen und für beliebige Speicherbereiche übersetzen kann. Bei FLEX bekommt man ein Handbuch (FLEX Adaption Guide), einen Binär Code (FLEX.COR) und die Utilities als Dateien. Für beide Betriebssysteme muss man Driver Code entwickeln für RS232, Disk Zugriff und optional Printer Unterstützung.


    Während CUBIX in jedem Speicherbereich ausgeführt werden kann, muss FLEX genau im Adressbereich C000-E000 sein und es muss RAM sein.


    Der Systemstart ist bei CUBIX denkbar einfach, das CUBIX muss einfach nur an beliebiger Adresse zur Verfügung stehen. Das kann sein als ROM, als Block im RAM kopiert aus einem ROM oder geladen von Disk. Das FLEX könnte man natürlich auch direkt aus dem RAM kopieren. Aber es ist ein spezieller Bootvorgang angedacht, ähnlich wie beim MSDOS. Auf der FLEX Systemdiskette ist erste Sektor (Track 0, Sektor 0) reserviert als Boot Sektor. Der Sektor enthält den System Boot Code der immer an der Adresse C100 geladen und ausgeführt wird. Der Boot Code lädt dann den eigentliche FLEX Core samt Treiber (FLEX.SYS) von Disk in den Speicher und startet FLEX (Cold Start).


    Sowohl CUBIX als auch FLEX greifen auf bis zu 4 Disk Laufwerke zu. Aus Sicht des OS sind es eine Anzahl Sektoren die über Track/Sektor adressiert werden. In beiden OS kann es maximal 256*256 (65536) Sektoren geben auf einem Laufwerk. FLEX arbeitet mit 256 Byte großen Sektoren, dadurch ergibt sich eine maximale Datenträger Größe von 16MB pro Laufwerk. CUBIX hat pro Sektor 512 Bytes was zu einer maximalen Datenträger Größe von 32MB führt. Dateien sind eine Menge an Sektoren die verkettet sind. Während CUBIX die Verkettung in eigenen Sektoren verwaltet, verwendet FLEX die ersten beiden Bytes in jedem Sektor als Link zum folgenden Sektor (wie bei Diskettenlaufwerken von Commodore). Zudem verwendet FLEX weitere 2 Bytes für die Verwaltung des Dateizugriff, daher stehen eigentlich nur 252 Bytes zum speichern von Daten zur Verfügung.


    Das FLEX kennt keine Verzeichnisse für Dateien, was bei Floppy Laufwerke nur marginal stört aber für Festplatten schon eine große Einschränkung darstellt. Das CUBIX hingegen kennt bereits eine Verzeichnis Struktur, wobei alle Dateien in einem Verzeichnis liegen müssen (es gibt kein Root Verzeichnis). Zudem bietet CUBIX keine hierarchische Struktur, jedes Datei ist in einem Verzeichnis und jedes Verzeichnis befindet sich im Root.



    Fazit:


    Beide DOS Varianten sind brauchbar für einfachste 6809 Systeme. Während das CUBIX moderner wirkt, bietet FLEX eine riesige Sammlung an Programmen und Informationen zu FLEX.


    Das CUBIX kann extrem einfach an eine Zielhardware angepasst werden. In wenigen Stunden kann man CUBIX in Betrieb nehmen, indem man den vorhandenen Treibercode anpasst. Das FLEX ist ein wenig komplexer bei der Anpassung, wenn man es so macht wie es von den Entwicklern vorgesehen ist.



    FLEX Anpassung an den SBC:


    Die Anpassung von FLEX 9 an meinen 6309 SBC habe ich Schritt für Schritt nach dem PDF (FLEX Adaption Guide) gemacht. Im ROM steht ein minimaler Code der die MMU initialisiert und den Bootsektor lädt. Der Bootcode lädt den FLEX Core (FLEX.SYS) in den Speicher und startet FLEX:


     



    Es macht richtig Spaß mit FLEX herum zu spielen. Die zahlreichen Tools auszuprobieren und zu testen. Das BASIC, das extended BASIC, FORTH und C Compiler sind auf Anhieb perfekt gelaufen.


    Der C-Compiler kompiliert ein "Hello World" Programm vollautomatisch in mehreren Durchläufen (siehe Screenshot).

    Das kompilierte Programm wird vom Compiler als HELLO.CMD abgespeichert und kann durch EIngabe von HELLO gestartet werden.

    Auf der Diskette sind noch andere C Sources drauf die man als Test des Compilers benutzen kann.

    Es funktioniert sehr einfach und gut, wie bei MSDOS Compilern kann man mit argc und argv[] ganz einfach Parameter von der Kommandozeile auswerten.

  • Mach doch bitte vielleicht mal noch ein paar Links dazu, die Du ja wahrscheinlich mittlerweile gut kennst und gebookmarked hast, damit man auf einfache Art die drei, vier wichtigen Webseiten findet.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • … und ich merke mir das für die nächste LOAD.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Mach doch bitte vielleicht mal noch ein paar Links dazu, die Du ja wahrscheinlich mittlerweile gut kennst und gebookmarked hast, damit man auf einfache Art die drei, vier wichtigen Webseiten findet.

    FLEX Wiki:

    https://de.wikipedia.org/wiki/Flex_(Betriebssystem)

    https://en.wikipedia.org/wiki/FLEX_(operating_system)


    FLEX User Group:

    FLEX User Group - Welcome!


    SWTPC:

    Overview


    SWTPC Emulator:

    FLEX UniFLEX User Group Wiki


    UniFLEX hardware mit MMU:

    GitHub - kees1948/UniFLEX: an UniFLEX compatible hardware/software project on Eurocards
    an UniFLEX compatible hardware/software project on Eurocards - GitHub - kees1948/UniFLEX: an UniFLEX compatible hardware/software project on Eurocards
    github.com