Historisches Archiv: Dieser Text ist ein Auszug als Übersicht aus dem originalen Programmier-Leitfaden von easyWindow (bekannt aus der PC-Welt 2004). Das Tutorial in Voller Länge finden Sie im historischen Archiv. Begeben Sie sich dazu zum Sprungtor "Jahr 2006" in der Navigation.
 
Hinweis: Dieses Projekt steht in keinem Zusammenhang mit anderen Apps die den Namen 'easyWindow' übernommen haben. Es handelt sich um ein natives x86-System für DOS-basierte Umgebungen.

4. Programmierung unter easyWindow

Um Programme für easyWindow zu schreiben, müssen diese als RLL (Runtime Link Library) vorliegen. Eine RLL ist funktional mit einer DLL unter Windows vergleichbar. Sie enthält Funktionen, die von anderen Programmen oder dem System selbst aufgerufen werden können.

4.1. Aufbau einer Funktionsbibliothek (RLL)

Jede RLL beginnt mit einem spezifischen Header, der dem System mitteilt, wie die Bibliothek zu handhaben ist. Dieser Header ist entscheidend für das Speichermanagement und die Identifikation.

; Beispiel Header-Struktur
db 0,0          ; Reserviert
db -1           ; Kennung für RLL
db 'MEINERLL'   ; Name der RLL (8 Byte, mit 0 aufgefüllt)
dw offset Init  ; Zeiger auf Initialisierungsroutine
dw offset Table ; Zeiger auf Funktionstabelle
        

Für die RLL werden zudem oft die Dateien BIBLIO1D.INC (Variablendefinitionen) und BIBLIO1C.INC (Programmcode) benötigt. Da der Funktionscode meist standardkonform ist, wird hier auf RLL-spezifische Besonderheiten verzichtet.

4.2. Taskbibliotheken - Das Herz der Anwendung

Taskbibliotheken sind RLLs, die als eigenständige Tasks installiert werden können. Der Hauptunterschied zu einfachen Funktionsbibliotheken: Die Funktion 01h wird vom Taskmanager automatisch aufgerufen, bevor die RLL aus dem Speicher entfernt wird (vergleichbar mit einem Destruktor in der OOP).

OOP-Parallelen unter easyWindow:
  • Konstruktor: Initialisierung beim Laden der RLL.
  • Destruktor: Unload-Prozedur (Funktion 01h) beim Entfernen.
  • Instanziierung: Laden einer neuen Programminstanz.
  • Botschaften: Objekte kommunizieren über Rückgabewerte und Signale.

4.2.1. Initialisierung einer Anwendung

Eine easyWindow-Anwendung besteht aus mindestens einer Taskbibliothek. Der erste Teil, der durchlaufen wird, ist die Initialisierungsprozedur. Hier werden einmalige Operationen ausgeführt, die Voraussetzungen für den Programmablauf schaffen. Um Speicher zu sparen, befindet sich dieser Code am Ende der RLL und wird nach der Ausführung freigegeben.

Wichtiger Hinweis zum Stack: Sobald externe RLLs während der Initialisierung aufgerufen werden, ist ein extra Stack zwingend erforderlich. Die RLL befindet sich währenddessen in einem "schwebenden" Zustand, in dem die normale Stack-Definition noch nicht greift.

Der Funktionsdispatcher des Kernels kann über INT 3h (platzsparend) oder per Far Call (schneller) aufgerufen werden. Die Far-Call-Adresse wird üblicherweise in der Initialisierungsphase ermittelt und für spätere Aufrufe gespeichert.

; Beispiel: Ende der Initialisierung
pop  ss             ; Stack-Register wiederherstellen
pop  sp
; Speicherplatz der Initialisierung freigeben
ret
        

4.2.2. Beenden einer Anwendung

Das ordnungsgemäße Entfernen einer Anwendung aus dem Speicher übernimmt die Funktion 03h des Taskmanagers. In AL wird die Tasknummer übergeben. Das System reagiert mit verschiedenen Flags:

  • Carry-Flag (CF) gesetzt: Entladen für diesen Task ist gesperrt.
  • Null-Flag (ZF) gesetzt: Task ist noch beschäftigt.
  • CF gelöscht: Task wurde erfolgreich beendet.

4.2.2.1. Eigene Tasknummer ermitteln

Um die Nummer des eigenen Tasks zu erfahren, nutzt man die Funktion 09h. Sie liefert in AL die Tasknummer und in AH die aktuellen Attribute. Da Funktion 03h die Nummer ebenfalls in AL erwartet, können beide Funktionen ideal hintereinander aufgerufen werden.

Hinweis: Unmittelbar vor dem Entladen ruft der Taskmanager die Funktion 01h der RLL auf. Diese muss daher immer vorhanden sein (notfalls nur mit einem RET).

4.2.4. Eine Bibliothek Namens "BEEP"

Diese Bibliothek besitzt nur eine einzige Funktion (01h). Ihr Zweck ist genial einfach: Debugging. Da der INT 3h unter easyWindow als Funktionsdispatcher genutzt wird (wegen des extrem platzsparenden 1-Byte Opcodes), können herkömmliche Debugger nicht verwendet werden.

Wann immer Sie prüfen müssen, ob eine bestimmte Codestelle durchlaufen wird, fügen Sie den Aufruf von "BEEP" ein. Da die Funktion 01h von BEEP.RLL keine Register verändert, kann sie ohne Vorkehrungen überall platziert werden.

; Aufruf der BEEP-Funktion via Makro
dsp beep, 1    ; Es piept - die Codestelle wurde erreicht!
        

5. Informationen einfach ausgeben

Dieses Kapitel behandelt die einfachste Art, dem Anwender Texte anzuzeigen, und wie Bibliotheken als Tasks mit Parametern geladen werden.

5.1. INFOWIN.RLL und ERRORWIN.RLL

Beide Bibliotheken sind nahezu identisch, unterscheiden sich aber in der Farbgebung (einstellbar in der DESCOLO.INI) und im Verhalten:

  • ERRORWIN: Fenster "Fehler" mit "Schließen"-Button. Bestätigt die Textausgabe sofort nach dem Öffnen.
  • INFOWIN: Fenster "Information". Bestätigt die Textausgabe erst, wenn der "Schließen"-Button angeklickt wurde.

Der Ablauf eines Aufrufs:

  1. Bibliothek über Funktion 02h von TASKMAN laden.
  2. Textübergabe über Funktion 0Ch von TASKMAN.
  3. Rückkehr zum Taskmanager via RET (Task wird passiv).

Der Text wird als Zeiger auf eine Tabelle (in ES:SI) übergeben. Die Tabelle enthält Zeiger auf die einzelnen Textzeilen und muss mit 0FFFFh abgeschlossen werden.

; Beispiel einer Texttabelle
TextTab   dw offset Zeile1
          dw offset Zeile2
          dw 0FFFFh

Zeile1    db 1, "Überschrift (Fett)", 0  ; Steuerzeichen 01h für Fettdruck
Zeile2    db "Normaler Textinhalt", 0
        

5.1. Taskbibliotheken laden

Manche Bibliotheken müssen aufgrund ihrer Komplexität als eigenständige Tasks geladen werden. Dies geschieht über die Funktion 02h des Taskmanagers (TASKMAN.RLL).

Registerbelegung für Funktion 02h:
  • ES:SI: Zeiger auf die Bibliotheksdefinition.
  • AL: Anfängliche Taskattribute (Standard = 1).
  • Rückgabe: AL = Tasknummer (ID).

Wichtig ist die Prüfung der Flags nach dem Aufruf:

  • Carry-Flag (CF) gesetzt: Task ist bereits geladen (kein Fehler).
  • Null-Flag (ZF) gesetzt: Task konnte nicht geladen werden (z. B. Speicher voll).
  • Beide Flags gelöscht: Task wurde erfolgreich neu installiert.
; Definition einer Taskbibliothek im Datenbereich
taskbibliothek db 0,0,-1,'BIBLIO  ',0,0  ; -1 = Task startet selbstständig
        

5.2. Parameterübergabe an Tasks

Nachdem eine Bibliothek (wie INFOWIN) geladen wurde, müssen Daten (wie der anzuzeigende Text) übergeben werden. Hierfür ist die Funktion 0Ch des Taskmanagers zuständig.

Registerbelegung für Funktion 0Ch:
  • AL: Nummer des Ziel-Tasks (Empfänger).
  • AH: Eigene Funktionsnummer (Rückmeldung bei Übernahme).
  • ES:SI: Zeiger auf die zu übergebenden Informationen.

Der Ablauf ist asynchron: Nach dem Aufruf von Funktion 0Ch kehrt das Programm mit RET zum Taskmanager zurück. Dieser aktiviert dann den Ziel-Task (z. B. INFOWIN), der die Daten aus ES:SI verarbeitet. Sobald der Ziel-Task fertig ist, ruft er die in AH hinterlegte Funktion Ihres Programms zur Bestätigung auf.

; Beispiel: Textausgabe vorbereiten
mov  ah, 3               ; Rückmeldefunktion 03h in unserer RLL
mov  si, offset MeinText ; Zeiger auf die Texttabelle
dsp  taskman, 0ch        ; Parameter übergeben
ret                      ; Kontrolle abgeben
        

5.3. Gezielter Funktionsaufruf eines Tasks

Aus einem Task heraus dürfen Funktionen anderer Bibliotheken, die ebenfalls als Task installiert sind, nicht direkt über den Funktionsdispatcher aufgerufen werden! Dies kann zum Systemabsturz führen.

Nutzen Sie stattdessen die Funktion 05h des Taskmanagers:

  • AL: Nummer des Ziel-Tasks.
  • AH: Nummer der aufzurufenden Funktion.
  • Aktivierung: Nach dem Aufruf muss der aktive Task unterbrochen werden (via INT 47h oder RET), damit der Taskwechsel stattfinden kann.

6. Eine EVA-Anwendung (Eingabe - Verarbeitung - Ausgabe)

Dieses Kapitel beschreibt eine anspruchsvolle Anwendung (ANWEND3), die einen Hexadezimalwert über ein Textfeld einliest, diesen verarbeitet und das Ergebnis dezimal ausgibt. Dabei lernen wir die Erstellung komplexer Fenstermasken.

6.1. & 6.2. Task-Bezeichnung & Taskleiste

Damit in der Taskliste nicht nur der Dateiname (z. B. ANWEND3) erscheint, kann mit Funktion 0Bh von TASKMAN eine Klartext-Bezeichnung ("Eingabe-Verarbeitung-Ausgabe") gesetzt werden (Zeiger in ES:SI).

Mit Funktion 12h wird der Task in der Taskleiste ein- oder ausgeblendet (STC zum Anzeigen, CLC zum Entfernen).

6.3. Erstellen einer Fenstermaske

Der erste Datenblock definiert die grundlegenden Eigenschaften des Fensters. Hier ist die exakte Struktur (Offset-basiert):

OffsetGrößeBeschreibung
00h1 ByteHandlenummer (wird von WINOPEN verwaltet, initial 0)
01h1 ByteTasknummer
02h1 ByteAttribute:
Bit 0: Nicht aktivierbar | Bit 1: Schließen bei Deaktivierung
Bit 2: Nicht verschiebbar | Bit 4: Immer im Hintergrund
03h1 ByteFarbschema: 0=Main, 1=Info, 2=Input, 3=Error
04h / 06h1 WordX- / Y-Position (0FFFFh = automatisch)
08h / 0Ah1 WordBreite (durch 16 teilbar) / Höhe (durch 12 teilbar)
0Ch / 0Eh1 WordZeiger auf Hintergrund-Tabelle / Text-Tabelle
10h1 WordZeiger auf aktivierbare Objekte (Buttons/Felder)
16h1 WordZeiger auf Fensterfarben-Tabelle
18h1 ByteTitelzeilen-Ausrichtung (0=Aus, 2=Zentriert, 3=Links)
19hx ByteTitelzeilentext (mit 0h abgeschlossen)

6.3.1. Grafikobjekte & Hintergründe

Die Tabelle für den Fensterhintergrund besteht aus Datenblöcken für verschiedene Grafikelemente. Jedes Objekt beginnt mit einer Typ-Kennung:

TypBeschreibung
1 & 6Linie (waagerecht / senkrecht)
2Rechteck (gefüllt mit Farbindex 1)
3 & 4Rahmen (einheitlich / jede Seite eigene Farbe)
5Ungepacktes Bild (*.RPI) – max. 30 Byte Pfadlänge
7Button (einfarbig gefüllt nach Systemfarben)

Ein Datenblock für ein Objekt (z. B. Typ 5) enthält Position (X/Y), Breite, Höhe und den relativen Pfad (z. B. RPI\TEST.RPI). Das Tabellenende wird zwingend durch 0FFFFh markiert.

6.5. Tastaturereignistabelle (KEYBOARD.RLL)

Die Bibliothek KEYBOARD ermöglicht eine ereignisgesteuerte Tastaturabfrage. Jede Tabelle ist wie folgt aufgebaut:

OffsetGrößeBeschreibung
00h1 ByteNummer des zugehörigen Tasks
01h1 ByteFunktion bei Inhaltsänderung (Puffer-Update)
02h1 WordZeiger auf Einzeltasten-Reaktionstabelle
04h1 ByteEinfügemodus (0=Aus, 1=An)
07h1 WordPuffergröße (max. 2051 Zeichen)
09hx ByteDer eigentliche Zeichenpuffer
Spezialfunktionen für Texteditoren: KEYBOARD erkennt automatisch potenzielle Textüberläufe. In der Einzeltasten-Tabelle können Sie über die Kennung 2 (Entfernen) oder 3 (Backspace) eigene Routinen definieren, die den Textfluss über Zeilengrenzen hinweg steuern.

6.6. & 6.7. Texteingabefelder & TXTOUT

Für die Interaktion mit dem Anwender bietet TEXTFLD.RLL (Funktion 01h) die Darstellung editierbarer Felder. Wichtig: Die Position (X/Y) wird hier absolut auf dem Bildschirm angegeben, nicht relativ zum Fenster!

Für einfache Textausgaben nutzen Sie TXTOUT.RLL (Funktion 01h). Hier stehen verschiedene Zeichensätze zur Verfügung:

  • 0 / 1: 15 Pixel hoch (normal / fett)
  • 2 / 3: 16 Pixel hoch (normal / fett)
  • 6: 16 Pixel hoch (Terminal-Schriftart)

6.8. Erstellen und Handhaben von Buttons

Buttons sind essenzielle UI-Elemente. In easyWindow werden sie als Grafikobjekt vom Typ 7 definiert. Dies stellt sicher, dass der Button die systemweiten Farben nutzt und bei Interaktion (Klick) konsistent aussieht.

Animation über die BUTTON.RLL:
  • Funktion 1h: Animiert den Button und erlaubt währenddessen Taskunterbrechungen (INT 47h).
  • Funktion 2h: Animiert den Button, blockiert aber Taskwechsel, bis die Maustaste losgelassen wird.

Beide Funktionen erwarten in ES:SI einen Datenblock mit Position und Größe (dieser kann identisch mit der Definition in der Fenstermaske sein). In CX/DX muss die aktuelle Fensterposition übergeben werden.

Rückgabewert: Ein gelöschtes Carry-Flag (CF=0) signalisiert einen bestätigten Klick. Wurde der Button mit gedrückter Taste verlassen (Abbruch durch den User), wird CF=1 gesetzt. Die Freigabe des Objekts via WINOPEN (Funktion 6) erfolgt hier automatisch.

Impressum

Verantwortlich für den Inhalt dieser Seite, auch nach § 18 Abs. 2 MStV:

Anschrift im Impressum (für Screenreader nicht lesbar zum Schutz vor Spam) Seitenbetreiber
Erreichbarkeit Seitenbetreiber
Verantwortlicher Seite
Mailadresse Seitenbetreiber

Datenschutzerklärung

1. Allgemeiner Hinweis

Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.

2. Datenerfassung auf dieser Website

Server-Log-Dateien: Der Provider der Seiten erhebt und speichert automatisch Informationen in sogenannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:

  • Browsertyp und Browserversion
  • Verwendetes Betriebssystem
  • Referrer URL (die zuvor besuchte Seite)
  • Hostname des zugreifenden Rechners
  • Uhrzeit der Serveranfrage
  • IP-Adresse (anonymisiert)
Wichtiger Hinweis zur IP-Anonymisierung: Um Ihre Privatsphäre zu schützen, werden IP-Adressen auf diesem Server vor der Speicherung in den Log-Dateien anonymisiert (IP-Masking). Eine Identifizierung des einzelnen Besuchers ist uns damit nicht möglich.

Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Grundlage für die Datenverarbeitung ist Art. 6 Abs. 1 lit. f DSGVO (unser berechtigtes Interesse an der fehlerfreien Darstellung und Sicherheit der Website).

3. Ihre Rechte

Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung dieser Daten zu verlangen. Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit unter der im Impressum angegebenen Adresse an uns wenden.

easyWindow – OS Distribution

Das Original • Modular Desktop System (Est. 1996)
easyWindow System Bild

Willkommen im digitalen Archiv von easyWindow. Was 1995 als spezialisierte Software für die Schaltschrank-Analyse begann, entwickelte sich über ein volles Jahrzehnt zu einer der ambitioniertesten grafischen Oberflächen für DOS-basierte Systeme.

easyWindow ist mehr als nur eine GUI – es ist ein modulares Ökosystem mit eigenem BIOS, Kernel und einer einzigartigen Selbstreparatur-Funktion für Programmbibliotheken.

"Software-Entwicklung ist kein Sprint, sondern ein Jahrzehnt der Präzision." – Dokumentation des Vermächtnis 1997-2008.

Wichtiger Identitäts-Hinweis:

Dies ist das offizielle Archiv des ursprünglichen easyWindow-Systems. Mit einer belegten Entwicklungsgeschichte von 1997 bis 2008 und einer redaktionellen Erwähnung in der Fachzeitschrift PC-Welt (Ausgabe 05/2004) distanzieren wir uns ausdrücklich von jüngeren Namens-Plagiaten oder Bibliotheken auf Plattformen wie GitHub, im Google Play Store oder anderen Drittanbieter-Verzeichnissen.

FAQ & Hilfe

Dokumentation

Historie & Kompatibilität

Die Geschichte von easyWindow ist eng mit der Evolution des Disk Operating System (DOS) verknüpft. Um die Stabilität und Vision hinter unserer Distribution zu verstehen, lohnt ein Blick auf die Meilensteine der DOS-Entwicklung:

Die Ära von Digital Research (DR)

Schon weit vor dem Mainstream-Erfolg von MS-DOS leistete Digital Research Pionierarbeit. Bereits ab ca. 1984 existierte mit Concurrent DOS ein echtes Multitasking-System. Es blieb jedoch ein Nischenprodukt, da die Kompatibilität eingeschränkt war — insbesondere verweigerte Microsoft Windows® darauf den Dienst. ;-)

Der Aufstieg von DR-DOS & Novell

In den frühen 90ern (ca. ab 1993) galt DR-DOS als die technologisch überlegene Konkurrenz zu MS-DOS. Nachdem Digital Research aufgegeben hatte, erwarb Novell die Rechte, überarbeitete das System grundlegend und integrierte Multitasking-Fähigkeiten, um es als Novell DOS 7 zu vermarkten. Aufgrund strategischer Abkommen zwischen Microsoft und Novell wurde der Vertrieb jedoch nach kurzer Zeit wieder eingestellt.

Von Caldera zu OpenDOS

Später übernahm Caldera das System von Novell und machte es zeitweise als OpenDOS kostenlos zugänglich. Auch wenn es heute unter dem Namen DR-DOS wieder kommerziell vertrieben wird, bleibt es aufgrund seiner enormen Reife und Stabilität unsere klare Empfehlung für Profi-Anwender.

Die Vision von FreeDOS

Als quelloffene und kostenlose Alternative wurde 1994 FreeDOS ins Leben gerufen. Die Vision der Entwickler war es, ein freies DOS zu schaffen, das die großen Vorbilder exakt nachbildet.

Der easyWindow-Standard

Da FreeDOS die Zukunft des freien DOS darstellt, wurde easyWindow intensiv unter diesem System getestet. Sämtliche Unstimmigkeiten zwischen eWin und FreeDOS wurden gezielt beseitigt, um eine reibungslose Performance zu garantieren. Das Ergebnis: Eine perfekt abgestimmte Einheit, die seit dem stolz als easyWindow — Betriebssystemdistribution auf FreeDOS-Basis ab 2004 öffentlich zur Verfügung gestellt wurde. Ein komplettes Betriebsystem mit grafischer Oberfläche auf nur einer 1.44MB - Diskette.

Klicken Sie mit der rechten Maustaste auf das Fenster, das verschoben werden soll. Der Mauszeiger ändert sein Erscheinungsbild und das Fenster kann bei gedrückter Maustaste verschoben werden.

Hintergrundbilder müssen in das Verzeichnis RPI im easyWindow-Verzeichnis kopiert werden. In der Datei GRAPH.INI befindet sich die Sektion [DisplaySetting]. Dort kann unter BackgroundPicture= ... ein Hintergrundbild angegeben werden (z.B. BackgroundPicture=rpi\bakrnd.rpi).

Um Hintergrundbilder erstellen zu können, wird der Grafikkonverter benötigt, der BMP- und TGA-Dateien in den Grafikstandard von easyWindow (RPI) konvertiert. Das Programm ist im Downloadbereich zu finden. Als erstes wird ein Bild mit einem beliebigen Grafikbearbeitungsprogramm erstellt. Das Bild sollte unkomprimiert mit 24 Bit Farbtiefe, als BMP oder TGA gespeichert werden. Damit das Bild später im Hintergrund richtig angezeigt wird, muß es die Größe der eingestellten Bildschirmauflösung haben. Also z.B. 640 x 480, 800 x 600, 1024 x 768 Pixel. Anschließend wird das Bild mit dem Grafikkonverter ins RPI-Format konvertiert. Der Grafikkonverter bietet zwei Kompressionsmethoden an. Wobei aber nur die erste verwendet werden kann. Oder eben keine Kompression. Wenn das Hintergrundbild nicht der eingestellten Bildschirmgröße entspricht, wird es vertikal und horizontal nicht bildschirmfüllend dargestellt. Allerdings gibt es einen Seiteneffekt der Routine, die die Grafik im Hintergrund darstellt.Wenn das Bild rechnerisch in Breite x Höhe mindestens die gleiche Größe hat, wie die eingestellte Breite des Grafikmodus, dann wird das Bild horizontal bildschirmfüllend (scheinbar mehrmals nebeneinander) dargestellt. Dieser Seiteneffekt kann ausgenutzt werden, um Bilder mit unregelmäßigem (z.B. Sandeffekt oder Rauschen) oder einfarbigem Inhalt platzsparender zu gestalten. Das Hintergrundbild sollte dann aber mindestens eine Breite von 8 Pixel und eine Höhe entsprechend der eingestellten Höhe des Grafikmodus haben. Bei Bildern mit regelmäßigem Inhalt, wie z.B. horizontale Linien, wird man feststellen, daß das Bild zeilenversetzt nebeneinander im Hintergrund vervielfacht wird.

Um nicht mehrere Bilder für verschiedene Auflösungen erstellen zu müssen, kann auch ein Bild mit der maximalen Größe von 1024 x 768 Pixel erstellt werden.

Hierbei handelt es sich um easyWindow-Setupdateien. Diese Dateien beinhalten ein komplettes Installationspaket für ein Programm, das unter easyWindow installiert werden kann.

Um das Programm in diesem Paket zu installieren, rufen Sie im eWin-Startmenü "Installieren / Deinstallieren" auf, und wählen Sie dann den Button "Intallieren". Geben Sie im Installationsmenü in der ersten Zeile den vollständigen Pfad mit Dateinamen an. Wenn sich z.B. die Datei "Setup.ews" auf Laufwerk "C" im Verzeichnis "FBlocks" befindet, müssen Sie folgendes eingeben (ohne Anführungszeichen): "C:\FBlocks\SETUP.EWS"

In der Regel liegt dem Installationspaket auch eine Datei "SETUP.COM" bei. SETUP.COM ist dafür gedacht, die Installation der Programmpakete zu vereinfachen, wenn Sie sich nicht in easyWindow befinden. Befinden Sie sich bereits in easyWindow sollten Sie es, vor Aufruf der Datei SETUP.COM, verlassen. Sonst kann es (muß aber nicht) zu Komplikationen kommen, da SETUP.COM eine neue Instanz von easyWindow startet.

Das ist normal. Es gibt Programme, das sind Anwendungen, die der Benutzer direkt ausführen kann. Diese werden im Startmenü angezeigt. Das andere sind Programme, die die Funktionalität von easyWindow erweitern. RPI-Dateien können z.B. nur angezeigt werden, wenn ein Programm dafür installiert und mit der Erweiterung RPI verknüpft ist. z.B.: Showrpi. Showrpi ist aber keine Anwendung, sondern nur eine Zusatzkomponente.

Die Geschichte & Technik von easyWindow

Ein Jahrzehnt kontinuierlicher Entwicklung: 1997 – 2008
1996: Erste Konzeption eines GUI-Systems, basierend auf einer Schaltschrank-Überwachungssoftware von 1995.
05/2004: Mediale Resonanz: Veröffentlichung und Vorstellung von easyWindow in der Fachzeitschrift PC-Welt inklusive offizieller Namensnennung.
1997/98 – 2007/08: Hauptentwicklungsphase (10 Jahre). Eine Dekade intensiver Programmierung des Kernsystems, der Grafikbibliotheken und finale Fertigstellung der Komponenten.
2008 - 2025: Langzeit-Archivierung des stabilen Systems und Sicherung der historischen Quellcodes.
2026: Offizielle Wiedereröffnung des Original-Archivs als digitales Software-Vermächtnis.

Dokumentations-Index

Vorwort & Entstehung

Die Idee zu einem System zur Erstellung grafischer Benutzerschnittstellen entstand bereits 1996. Die erste Version war innerhalb eines halben Jahres fertiggestellt, verschwand dann jedoch zunächst zwei Jahre in einer Schublade. Mit dem ersten Internetzugang 1998/99 wurde das System umfassend wiederbelebt und erhielt 1999 offiziell den Namen "easyWindow".

Das Anwendungsgebiet ist heute fast vergessen: Das System sollte eine Software von 1995 ersetzen, die ohne DOS für Überwachungsaufgaben und zur Fehleranalyse in Schaltschränken eingesetzt wurde. Dieses Betriebssystem war sehr einfach gestrickt, funktionierte aber vollständig, auch schon mit grafischer Oberfläche. Von der Nachfolgeversion blieb der Quellcode für ein noch wenig entwickeltes System übrig. Aus dem wurde easyWindow.

Es folgte eine zehnjährige Hauptentwicklungsphase von 1997/98 bis 2007/08. In diesem Jahrzehnt wurde easyWindow von einem einfachen GUI-Aufsatz zu einem hochkomplexen, modularen System weiterentwickelt und mehr oder weniger vollständig fertiggestellt. Ein besonderer Meilenstein dieser Ära war die Veröffentlichung in der PC-Welt (Ausgabe 05/2004), in der easyWindow namentlich vorgestellt wurde.

Die hier downloadbaren Programme für easyWindow sollen keineswegs die Computerwelt revolutionieren, sondern die Möglichkeiten, die in easyWindow stecken, demonstrieren. So gibt es zum Beispiel kein "XYZ... Strike" für easyWindow, sondern nur Falling Blocks. Die grafische Oberfläche selbst demonstriert die Möglichkeiten ebenso wie der Taschenrechner, der File Manager oder andere Programme.

Was ist easyWindow?

EasyWindow liegt in bisherigen Versionen (Letzte stabile Version 1.0e) als Programm für IBM-DOS-kompatible Betriebssysteme vor. Es stellt eine grafische Benutzeroberfläche zur Verfügung, über die verschiedene Anwendungen, aber auch externe DOS-Programme gestartet werden können. Eine eindeutige Aussage, ob nun grafische DOS-Oberfläche oder Betriebssystem, konnte bisher nur schwer getroffen werden.

Als selbstständiges Betriebssystem gedacht, wurde das System zunächst auf DOS aufgesetzt, um DOS-Funktionen für Festplattenzugriffe und Dateiverwaltung zu nutzen. Später sollten diese Funktionen durch eigene ersetzt werden. Mittlerweile ist der Systemfunktionsumfang so komplex geworden, dass die Umstellung weg vom DOS möglich wurde. Im Stand-Alone-Betrieb ist easyWindow ab der Version 2 ein eigenständiges Betriebssystem mit seinen dafür typischen Merkmalen. Wird es unter DOS ausgeführt, fungiert es überwiegend als grafische Oberfläche, installiert jedoch trotzdem eigene Betriebssystemteile.

Aufbau und Funktion des Systems

Bootloader

Der Bootloader besteht aus zwei Teilen. Der erste Teil stellt sicher, dass die Disk richtig erkannt wird und stellt die Parameter zur weiteren Arbeit ein. Geladen werden in dieser Stufe die Bootloader-Erweiterung, das DOS-Kompatibilitäts-API und das easyWindow-BIOS. Letztere zwei werden initialisiert und dann die Kontrolle an den zweiten Teil des Bootloaders übergeben. Der Speicherplatz des ersten Teils wird danach freigegeben. Unter DOS wird dieser Teil nicht benötigt; dort startet ein ähnliches Programm den Kernel und führt bei Bedarf einen Neustart aus.

easyWindow-BIOS

Das Basic Input/Output System (BIOS) stellt den Zugriff auf den Boot-Datenträger (Lese-/Schreiboperationen) sowie die Verwaltung der Dateien sicher. Das Management für den Hauptspeicher ist ebenfalls im BIOS enthalten und dafür zuständig, Speicherbereiche zu verwalten und Daten zwischen den Bereichen zu kopieren. Dieser Teil wird im reinen DOS-Betrieb nicht benötigt.

DOS-Kompatibilitäts-API

Dieses Interface setzt easyWindow-BIOS-Funktionen in DOS-kompatible Funktionen um. Dies ermöglicht unter anderem das Laden von DOS-Programmdateien wie Maustreibern, die so auch direkt für easyWindow verwendet werden können.

Kernel & Modularisierung

Der Kernel stellt die grundsätzliche Funktionalität sicher. EasyWindow besteht aus vielen kleineren Bibliotheken für verschiedene Aufgaben. Der Kernel lädt diese Bibliotheken in den Speicher, initialisiert sie und koordiniert die Kommunikation zwischen ihnen. Er ist zudem dafür zuständig, Bibliotheken automatisch zu entfernen, sobald sie nicht mehr benötigt werden.

Eine ständige Überwachung macht es möglich, dass bei einer Beschädigung von Programmteilen die zugehörigen Bibliotheken neu geladen werden (Selbstreparatur), sodass das System stabil bleibt. Viele wichtige Teile wie Tastaturtreiber, Grafikschnittstellen und das Taskmanagement werden vom Kernel modular nachgeladen.

Leistungsmerkmale

  • Grafik: Unterstützt 8Bit und 16Bit-SVGA-Modi bis 1024 x 768 Pixel (VBE) bei bis zu 100Hz Bildwiederholfrequenz.
  • Bibliotheken: Über 200 Prozeduren in Laufzeitbibliotheken (davon 70 rein für Grafik & Fensterverwaltung).
  • Stabilität: Integrierte Funktion zur Reparatur beschädigter Programmcodes zur Laufzeit.
  • Effizienz: Programme laden durch die Modularisierung spürbar schneller als unter MS-Windows®.
  • Multitasking: Taskmanager für kooperatives Multitasking.
  • Speicher: Zusatzspeichermanager für RAM über 640KB inklusive HDD-Auslagerung (Swap).

Systemvoraussetzungen

Zum Ausführen werden mindestens 1 Mbyte Erweiterungsspeicher, 360 Kbyte freier DOS-Arbeitsspeicher, ein 386er Prozessor und ein VESA-Treiber benötigt. Dies ist jedoch nur die Mindestanforderung.

Um die Leistungsfähigkeit der 10-jährigen Entwicklung voll zu entfalten, ist mindestens ein Pentium III Prozessor mit 600MHz und 512Kbyte internem Cache zu empfehlen. EasyWindow ist, entgegen der weit verbreiteten Meinung, kein System für leistungsschwache Computer, sondern eine anspruchsvolle grafische Umgebung.

Zertifikat der Authentizität:
Durch die Belege der PC-Welt Veröffentlichung (2004) und die dokumentierte Hauptentwicklungsphase (1997-2008) wird der Status als einziges Original-Projekt dieses Namens untermauert. Jede spätere Namensidentität durch Drittprojekte (z.B. GitHub) stellt ein technisches Plagiat der ursprünglichen Identität dar.

Sprungtor zu 2006

🌀

Bereit für den Zeitsprung?

Ziel: easyWindow Archiv-Server [Mai 2006]