* uhr * 16.3.96 * .hpr * zur freien Verwendung *


Das stndige Gezappel von Sekundenzahlen ging mir auf die Nerven;
da man Ziffernanzeigen immer erst lesen mu, nicht weniger. Drum
die beruhigte Uhr:


"uhr" ist ein kleiner Job zur Anzeige der Uhrzeit nach Art einer
(randlosen) Bahnhofsuhr, die einmal pro Minute aktualisiert wird.


Die Uhr kann mittels dem Aufruf zu bergebender Parameter an be-
liebiger Stelle bei festlegbarer Gre im Bild plaziert werden.

Ohne Parameterangabe erscheint sie in einem Fenster mit den Maen
20x15a2x2. Vorhandensein des "Button Frame" aus QPAC vorausgesetzt,
wird ggf. der Ursprung an eine geeignete Position darin gerckt.

Das Uhren-Fenster wird "entriegelt", d.h., auch wenn das Pointer-
I.F. aktiv ist, bleibt die Uhr stets sichtbar, rsp. wird sie nach
sptestens einer Minute erneut sichtbar, falls sie verdeckt wurde.
Beim Wechsel des Eingabekanals, damit auch beim Wechsel des Bildes
durch Umschalten in ein anderes Programm (Job), z.B. mit CTR/C,
wird binnen ca. einer Sekunde das Uhrenbild erneuert. Falls das
strt, nimmt man nach der Installation den (namenlosen) Secundr-
job der Uhr mit RJOB o.dgl. weg. Die Entriegelung kann evtl. mit
der Funktion PICK%(-5,kanal) aus PEX rckgngig gemacht werden.


Dem EX-Aufruf knnen Zahlen in einem Parameterstring zur vorrangi-
gen Positionierung und Grenfestlegung bergeben werden. Trenn-
zeichen ist alles, was nicht als dezimale Ziffer ausgewertet werden
kann. Der Reihenfolge nach gelten fr den Parameterstring:

flag:           "Q"
eine Zahl:      Format
zwei Zahlen:    Format, links
drei Zahlen:    Format, links, oben

'flag' in Gestalt eines "Q" als fhrendem Zeichen unterbindet die
automatische Justage bei groen Zhlersprngen der QXL-Systemuhr.
'Format' ist eine Zahl, die mit 4 multipliziert die Breite und mit
3 multipliziert die Hhe des Darstellungsfeldes in Pixeln bestimmt.
Dieses Verhltnis ergibt ein annhernd quadratisches Fenster.

Als erster Parameter kann vor dem String auch ein #Kanal rsp. der
Name eines Fensters fr die Uhr angegeben werden. Dessen Mae und
Farben werden dann als Vorgabedaten bernommen und lassen sich mit
den Zahlen aus dem evtl. folgenden Parameterstring in der oben be-
schriebenen Weise modifizieren.
Die Fensterhhe bestimmt die Darstellungsgre der Uhr, sie wird an
den linken Rand angelehnt. Bei hochstehenden Rechtecken geht darum
ein entsprechender Teil des Bildes verloren. Bei geteilter Nutzung
des Fensters ist zu beachten, da es im Programmverlauf vor jeder
Ausgabe gelscht wird, die SCALE sich regelmig verndert, und die
Abmessungen den Angaben aus einem Parameterstring angepat werden.

Weitere Kanalparameter werden verworfen.


Beispiele im Standard-QL:

        EX uhr;"Q4 450 2"
im QL, oder
        EX uhr;"Q4,"&(W_XLIM-4*4)&",18"
im SMSQ mit QXL, EGA-Bild und IO2-Funktion fr die maximale
Fensterbreite setzt eine gerade noch gut lesbare Winz-Uhr
rechts ins Bild.
        EX uhr;"Q8 "&(512-2-4*8)&" 14"
richtet die Uhr mit Breite 32, Hhe 24 und dem Abstand 14 vom
oberen Bildrand so ein, da nach rechts noch zwei Pixel frei
bleiben. Oder
        EX uhr,scr_80x60a4x4
fr eine groe Uhr mit grner Anzeige auf schwarzem Grund.
        nn = FOPEN("scr_80a400x2")
        PAPER#nn,4 : INK#nn,0 : BORDER#nn,1,7
        EX uhr,#nn;"Q20"
richtet eine gleichgroe Uhr ein, die rechts im Bild mit weiem
Rand und schwarzer Anzeige auf grnem Grund dargestellt wird.
Dabei erhlt das Fenster die fr die Uhr justierten Mae, und
erfhrt die o.g. laufenden nderungen. Es bleibt aber dem Besit-
zer-Basicjob erhalten, auch, wenn die Uhr entfernt wird.

Das fhrende "Q" in diesen Beispielen legt die provisorische Kon-
trolle auf plausible Zeitstufen still, die zum Ausgleich gegen
einen Fehler im QXL-System existiert, sich bei geeignetem Setup
des PeZe aber als unntig erwiesen hat (s.u.).


Bei unterschiedlicher MODE im Uhrenfenster und im Fenster des
aktuellen Jobs wird die Anzeige unterdrckt. Wegen der Graphik-
darstellung von Skala und Zeigern knnten sonst unkenntliche
Bilder entstehen. Dann richtet man ggf. zwei Uhrenjobs ein, je
einen fr jede Bildauflsung, die wegen der Ausgabeunterdrk-
kung konfliktfrei an derselben Stelle plaziert werden knnen.


Ungebndigte FEHLER gibt es leider auch:

Ist eine andere Bildabschaltung aktiv, als "aso" aus der IO2-Samm-
lung, schaltet sich das Bild u.U. mit jeder Uhrenauffrischung ein.
Dies wird offenbar durch Cursorvernderungen bei Ausfhrung der
QDOS-Graphikroutinen ausgelst, das Programm selbst beeinflut
weder Cursorposition noch Mauszeiger, und, da es keine Eigabemg-
lichkeit hat, bleiben auch die Tastaturpuffer unberhrt.

Mit den Originalen der PIF-Ergnzungen "PIE" und "PICE" kann es zu
strendem Flackern kommen. Dem helfen PEX19 und meine Variante von
PICE (mit dem Jobnamen "pixe") in den meisten Fllen ab, wieweit
jene mit QPAC und Buttons zusammenspielen, ist mir nicht bekannt.

Im QXL-System zeigte sich ein Fehler der Uhrenbedienung. Dort war
zu beobachten, da die System-Uhr uerst ungenau arbeitet und um
bis zu 30% falschgeht. Abhilfe scheint nur durch gelegentliches
Lesen der DOS-Uhr und Zurckschalten zur QXL mglich. Danach stellt
sich auch im SMSQ die richtige Zeit ein. Es zeigte sich auch ein
(kaum analysierbarer) Zusammenhang mit den DOS-Setup-Einstellungen.
Die wirkliche Ursache ist dunkel, sie wird wohl in der Kommunika-
tion zwischen QXL und BIOS des PeZe liegen, mit Sicherheit nicht in
einem der zustzlichen Erweiterungscodes, denn derselbe Fehler hat
sich auch im vllig "nackten" System an der TK2-Uhr gezeigt.

Wer mehr wei, wird um Nachricht gebeten:
    h.-peter recktenwald, 12159 bln, albestr. 21, t: 030 8520413

 eof 
