1.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Startschuž ! Die Erste Version, die alles kann und Module auch konfiguriert. (12 Module) 1.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Kleine Žnderungen wie z.B. die Anw„hlbarkeit der Cross-Buttons ber den Text. (22 Module) 1.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Alle 25 Module sind da ! Einige Module liefen nicht unter MultiTOS, das ist nun auch behoben. (25 Module) 1.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MIDI heižt das Zauberwort. 'midnight' interpretierte wegen einer seltsamen Abarbeitungsweise des TOS ein einkommendes MIDI-Zeichen als Tastendruck (??!?). Deshalb kam es nie zum Schonen, wenn z.B. ein MIDI-Netz installiert war. Das ist nun passe und ein weiterer šberwachungsknopf ist dazugekommen: die MIDI-šberwachung ! (28 Module) 1.04 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Da etliche Programme w„hrend sie lange Berechnungen machen eine Statusanzeige zur "Benutzerberuhigung" verwenden und diese Anzeige jeweils mit BEG_UPDATE/ END_UPDATE klammern, k”nnen diese Programme auch im 'Timesharing'-Mode nicht auf den Bildschirm ausgeben w„hrend 'midnight' schont. Deshalb ist der Button 'Timesharing' einem Popup 'Kompatibel:' mit den Eintr„gen Systemstop <- Nur 'midnight' l„uft. Andere Prozesse stehen. Timesharing <- Durch 'evnt_timer'-Aufrufe drfen auch Andere. Screenshare <- Screenausgaben hinter dem Fenster werden erm”glicht. gewichen. Da bei 'Screenshare' nun auch ein Fenster aufgehen k”nnte, w„hrend 'midnight' schont, kann das Schonerbild schon mal beschrieben werden, obwohl noch geschont wird. Aber z.B. MetaFont-Berechnungen fr TeX drften nun auch w„hrend des Schonens weiterlaufen (diverse 'W„hlprobleme' von Terminalprogrammen k”nnten auch weg sein). Aužerdem wird das CLIPBRD jetzt korrekt angelegt, wenn es noch nicht existierte. ^C beim Schonen fhrt jetzt also nicht mehr zu Bomben. 1.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 'midnight' hat Zuwachs bekommen. Er heižt MID_AUTO.PRG, ist ein AUTO-Ordner-Programm und sorgt fr noch mehr Kompatibilit„t. Nun l„uft z.B. auch "Tempus" wieder ! Das Programm legt auf allen TOSsen einen XSSI-Cookie an (eXtendes Screen Saver Interface) und verbiegt alle n”tigen Vektoren. Das XSSI geht auf einen Vorschlag von Julian Reschke zurck und ist volgendermažen aufgebaut: Der Bildschirmschoner richtet den XSSI-Cookie (e_X_tenden _S_creen_S_aver _I_nterface) ein. Mit diesem Cookie signalisiert der Bildschirmschoner den laufenden Prozessen, dass gerade geschont wird. Hierauf koennen die anderen Prozesse ihre Bildschirmausgaben z.B. anhalten, und erst dann, wenn die gerade ablaufende Aktion beendet ist, dem Schoner z.B. mitteilen, dass das Schonen beendet werden soll. Der Inhalt des Cookies mit der ID 'XSSI' ist ein Zeiger auf die folgende Struktur: typedef struct { LONG id; /* Analog zum Vorgehen beim XBRA-Verfahren die ID des Bildschirmschoners */ WORD version; /* Version des XSSI-Protokolls - zunaechst 0x100 */ WORD save_stat; /* Mitteilung, ob gerade geschont wird. 0=nein */ WORD prg_stat; /* Status des Programms: 0= normal schonen, 1= niemals schonen bzw sofort aufh”ren, -1= sofort schonen. */ } INFOXSSI; In _id_ sollte jeder Bildschirmschoner eine Kennung eintragen, die wie eine XBRA-Kennung aus druckbaren Zeichen bestehen soll. Am sinnvollsten ist es, die XBRA-Kennung des Schoners zu verwenden - 'midnight' setzt hier 'midn' ein. _version_ kennzeichnet die Version des XSSI-Protokolls. Dieser Eintrag ist erst ab einer Erweiterung der Struktur von Bedeutung. Hier steht vorerst $0100, also Version 1.00. _save_stat gibt an, ob der Bildschirmschoner gerade schont, und die aktiven Prozesse daher - wenn moeglich - Grafikausgeban verhindern sollen. Steht in 'save_stat "0", wird nicht geschont, steht hier ein negativer Wert, wird gerade geschont. Mit _prg_stat_ kann ein Programm dem Schoner Mitteilungen schicken: prg_stat = 0 Der Schoner soll ganz normal aktiv sein. prg_stat = 1 Der Schoner soll auf keinen Fall schonen bzw er soll sofort mit dem momentanen 'Schongang' aufh”ren. prg_stat = -1 Der Schoner soll sofort aktiv werden (z.B. weil das Programm weiss, dass es eine laengere Pause machen wird - Bsp.: eine Textverarbeitung beim Drucken). 1.11 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Wie das Leben so spielt: Wenn die .INF-Datei fehlte, wurde trotz vorhandenem .RSC der spartanische Alert zur Zeiteinstellung aufgerufen. Und bei diesem konnte man ber 000 hinaus eine (etwas seltsame) Zeit anw„hlen. Diese negative Zeit bewirkte dann, daž im richtigen Dialog garkeine Zeit mehr einstellbar war... Aužerdem Bombte es auf Cash-Rechnern (STE's o.„.), wenn ein Modul ge'Doppelklick'ed wurde, das ein Edit-Feld hatte (wie z.B.KUGEL, MESSAGE, STELL). Aužerdem installiert sich 'midnight' nicht mehr, wenn das 'MID_AUTO.PRG' nicht im AUTO-Ordner mitgebootet wurde und gibt eine Meldung aus. 1.12 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Grožes SORRY ! 'midnight' l„uft nun mit Mag!X (R), dem MultiTasking-Betriebs- system von BELA. Ein ganz bl”der und winziger Speicherfehler unsererseits hatte riesige Folgen... Jetzt geht's aber !