home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0646.ZIP
/
CCE_0646.PD
/
ARRFIX15
/
ARROWFIX.GER
< prev
next >
Wrap
Text File
|
1993-10-18
|
13KB
|
233 lines
PROGRAMM
ARROWFIX v1.5 [18.10.1993] -
Patches rund um die Scrollroutinen von GEM-AES und GEM-Desktop
BESCHREIBUNG
Die Scrollroutinen im GEM wurde im Laufe der TOS-Versionen einigen
Änderungen unterzogen um das System sicherer und schneller zu
machen. Leider haben sich dabei immer wieder Fehler eingeschlichen,
die mit ARROWFIX behoben werden können.
Die einfachste Scrollimplementierung findet sich, wen wundert es,
im TOS 1.00. In diesem TOS hatten die Scrollpfeile der Fenster
noch keinen AUTO-Repeat und es war sehr mühselig zu scrollen.
Dies wurde im TOS 1.02 geändert, dabei jedoch ein konzeptionelles
Problem im GEM übersehen, was dazu führt, daß in einigen Programmen,
bei einem Einzelklick auf einen Scrollpfeil, zweimal gescrollt
wird (1). Dieser Fall tritt genau dann ein, wenn weder die Haupt-
applikation noch eines der installierten Accessories auf einen
Doppelklick wartet. In der Praxis fällt das Problem in TOS 1.02
jedoch nicht auf, da ein anderer 'echter' Fehler seine Wirkung
aufhebt. Als dieser Fehler in TOS 1.04 korrigiert wurde, schlug
das Problem voll durch und es wurde eine Verzögerungsschleife ein-
gebaut, die auch in den meisten Situationen Abhilfe schafft, aber
leider nicht immer. Bis zur aktuellen GEM Version 3.40 in TOS 4.04
hat sich daran nichts mehr geändert.
In TOS 2.x/3.x wurde das alte GEM-Desktop durch NEWDESK ersetzt.
Da den Entwicklern die Scrollgeschwindigkeit in den Fenstern des
Desktops wohl zu langsam war, benutzten sie einen 'schmutzigen'
Trick zur Beschleunigung (dabei wird so lange gescrollt, wie eine
beliebige Maustaste gedrückt ist)(2). Durch diesen Trick wird der
Bildschirmmanager kalt gestellt und es läuft immer eine Scroll-
meldung nach (auch so manches Programm geht leider so vor).
Ab GEM 3.20 (TOS 2.06/3.06) wurde das Versenden der Scrollmeldungen
im Bildschirmmanager beschleunigt. Dies wurde erreicht, in dem ein
'Bypass' zwischen Bildschirmmanager und der Applikation gelegt
wurde. Scrollmeldungen können somit teilweise den langen Weg durch
den Nachrichtenmanager des GEM vermeiden. Diese Änderung bescherte
leider auch eine Reihe von Fehlern. Nachrichten, die den Bypass
benutzen, haben eine falsche Nachrichtenlänge (3) und überholen
andere Nachrichten (4), die an die Applikation geschickt werden.
Außerdem verschickt der Bildschirmmanager manchmal Nachrichten
über den Bypass, obwohl er die alte Methode hätte benutzen müssen.
Das führt dazu, daß die Nachricht hängen bleibt (5) und erst nach
einer anderen Aktion durch den Anwender ausgeführt wird.
In den TOS Versionen 4.00 bis 4.04 wurden die Fehler (3) und (4)
behoben und der Scrolltrick (2) entfernt (leider ohne ihn durch
eine saubere Lösung zu ersetzen, wodurch das Scrollen in Desktop-
Fenstern bis zu 50% langsamer ist).
Ein weiterer Fehler, der eigentlich nichts mit dem Scrollen zu tun
hat, aber von ARROWFIX behoben wird, hat bisher alle TOS Versionen
überlebt. In bestimmten Situation kann es passieren, daß einer
Applikation ein Mausklick bzw. ein Rechteckereignis gemeldet wird,
obwohl dem Bildschirmmanager die Maus zugeordnet ist (6) (z.B.
wenn die Applikation einen Timerevent erhält, während man ein
Fenster verschiebt).
Nach der Beschreibung der TOS-Probleme jetzt die Möglichkeiten
sie mit ARROWFIX los zu werden:
Die erste Möglichkeit erlaubt es leider nur die Probleme (1) und
(3) (Doppelereignis und Überlänge) zu lösen. ARROWFIX.PRG muß
dazu in den Ordner \AUTO ihres Bootlaufwerks kopiert werden. Beim
Start des Rechners installiert sich ARROWFIX dann in den Aufrufen
einiger Systemfunktionen.
Für die zweite Möglichkeit ist ein direkter Eingriff in den
Programmcode des GEM notwendig. ARROWFIX beseitigt dann die
obigen Fehler, implementiert eine sauberere und schnelle Scroll-
routine im GEM-Desktop und erlaubt es schließlich die Ansprech-
zeit bis zur ersten Wiederholung einer Scrollmeldung einzustellen.
Die Unterschiede in der Implementierung des AUTO-Repeats der
Scrollpfeile soll das folgende Diagramm beschreiben:
normales TOS ARROWFIX modifiziertes TOS
Klick Klick
| Doppelklickwartezeit |
| bzw. 0, falls keine App. | Doppelklickwartezeit
v auf Doppelklick wartet v
--- 1. Scrollmeldung
| Doppelklickwartezeit |
| (erst ab TOS 1.04) | *1*
v v
1. Scrollmeldung 2. Scrollmeldung
| Verarbeitungszeit des | Verarbeitungszeit des
| Programms | Programms
v v
2. Scrollmeldung 3. Scrollmeldung
*1* Maximum aus der Ansprechzeit (einstellbar von 0 ab in
0.125 Sekunden Schritten, siehe KONFIGURATION) und der
Verarbeitungszeit des Programms
Die Doppelklickwartezeit kann über das Kontrollfeld ein-
gestellt werden. Möglich sind hier Werte von 0 bis 4, die den
folgenden Zeiten entsprechen: 450, 330, 275, 220 und 165 ms.
Der Programmcode des GEM kann folgendermaßen verändert werden:
a) Man installiert beim Booten des Rechners eine Kopie des GEM im
RAM, die dann vor dem Start des GEM durch ARROWFIX modifiziert
wird. Dies ist mit einem der folgenden Programme möglich:
ROMRAM TOS Beschleuniger für TTs, >256 KB,
Mailbox Maus HH2, Freeware, A. Herzlinger, PTOS
VRAM Virtuelle Speicherverwaltung für TTs, >256 KB,
OverScan GbR, Berlin, Alexander Herzlinger, VRAM
ROMSPEED TOS Beschleuniger für TTs (Bestandteil von OUTSIDE
einer virtuelle Speicherverwaltung für TTs), >256 KB,
MAXON Verlag, Uwe Seimet, USRS
GEMRAM GEM im RAM installieren (STs und TTs), 80-120 KB,
Mailbox Maus MZ, Freeware, Martin Osieka, MOGR
(Beschreibung, Speicherbedarf, Bezugsquelle, Autor, Cookie)
ARROWFIX gehört in diesem Fall nach diesen Programmen in den
Ordner \AUTO auf dem Bootlaufwerk und wird somit beim Booten
automatisch gestartet.
Die Programme werden nur erkannt, wenn sie das entsprechende
Cookie im Cookiejar eingetragen haben.
b) Man benutzt ARROWFIX um sich eine modifizierte Kopie des TOS
zu erstellen, die anschließend in Eproms gebrannt und in den
Rechner eingesetzt wird. Hierzu ruft man ARROWFIX vom Desktop
auf und erhält dann die Möglichkeit, das TOS aus den ROMs oder
einer bereits bestehenden TOS-Datei von Disk zu laden. Nachdem
ARROWFIX das TOS modifiziert hat, kann es abgespeichert werden.
ARROWFIX unterstützt die folgenden GEM Versionen:
GEM TOS
1.40 GER 1.04/1.06/1.62
3.00 GER 3.01
3.10 GER 2.05/3.05
3.20 GER 2.06/3.06
3.31 4.01
3.40 4.02/4.04
ARROWFIX identifiziert das GEM über die Länge des GEM-TEXT-Segments.
GEM Versionen anderer Länder werden bei identischer Länge akzeptiert.
KONFIGURATION
Die Voreinstellung für die Ansprechzeit beträgt 0.375 Sekunden.
Durch Umbennen des Programms kann man diesen Wert ändern. Hierzu
ersetzt man das X im Programmnamen durch eine der Ziffern 0 bis 9.
Dieser Wert multipliziert mit 0.125 Sekunden wird dann von ARROWFIX
als Voreinstellung benutzt. Besser ist es jedoch die Ansprechzeit
über das beiliegende Modul ARROWFIX.CPX für das modulare Kontroll-
feld XCONTROL.ACC einzustellen.
Hält man beim Start von ARROWFIX die linke SHIFT Taste gedrückt,
wird nachgefragt, ob ARROWFIX ausgeführt werden soll.
HINWEISE FÜR PROGRAMMIERER
- das Doppelscrollproblem kann man leicht vermeiden, wenn man
in seinem evnt_multi()-Aufruf immer auch auf einen Doppel-
klick wartet: z.B. evnt_multi( MU_BUTTON|..., 2, 1, 1, ...);
- Programme sollten nicht den Bildschirmmanager kalt stellen,
in dem sie nach Erhalt einer Scrollmeldung so lange scrollen,
wie eine Maustaste gedrückt ist. Es gibt auch saubere Methoden
ein schnelles Scrollen zu implementieren. Z.B. kann man mit
evnt_multi( MU_TIMER|MU_MESAG, ..., mesag, 0, 0, ...);
eine eventuell vorliegende Nachricht lesen. Handelt es sich um
eine Scrollnachricht, verarbeitet man sie sofort (ACHTUNG: Die
Scrollrichtung kann sich geändert haben) ansonsten stellt man
sie zurück und wertet sie erst später aus. Es gibt Bibliotheken,
die hierfür passende Funktionen anbieten, so daß man nicht mit
globalen Variablen arbeiten muß. Beim Scrollen sollte auch
regelmäßig die Ausgabekontrolle abgegeben werden, damit andere
Applikationen zum Zuge kommen.
- Es ist unbedingt notwendig, beim Verschicken eigener Nachrichten,
die Überlaenge in mesag[ 2] korrekt zu setzen, da das GEM diesen
Wert intern zum Kopieren der Nachrichten benutzt.
VEKTOREN, COOKIES, ETC.
Kann das GEM modifiziert werden, integrieren sich die Patches in den
bestehenden Programmcode des GEM und ändern daher keine Vektoren.
Falls das Programm installiert werden muß, werden die Vektoren
_v_BIOS und _v_AESVDI manipuliert. Die XBRA-Kennung ist MOAF.
BEKANNTE PROBLEME
- ARROWFIX >= v1.4 muß nach WINX v2.0 gestartet werden. Das gilt
auch für das Patchen eine TOS-Images.
- ARROWFIX >= v1.4 kann nicht mit WINX >= v2.1 eingesetzt werden.
Das ist aber auch nicht notwendig, da die ARROWFIX-Patches ab
dieser Version in WINX enthalten sind.
- Bei Programmen, die nach Erhalt einer Scrollnachricht so lange
scrollen, wie die Maustaste gedrückt ist (und somit den
Bildschirmmanager kalt stellen), hat die Ansprechzeit keine
Wirkung. Solche Programme werden auch Schwierigkeiten bekommen,
falls der Bildschirmmanager einmal erweiterte Scrollfunktion
anbieten sollte.
- Bei manchen Kombinationen einer Applikation mit bestimmten
Accessories wird einem die Verarbeitung der Mausklicks träger
vorkommen. Tatsächlich ist es aber so, daß die Verarbeitung
jetzt eine einheitliche Geschwindigkeit hat.
- Das Abfangen des AES-Traps ist nicht genormt. Aus diesem Grund
kann die Zusammenarbeit mit anderen Programm scheitern, die
diesen Vektor ebenfalls ändern.
ÄNDERUNGEN
v1.5: Programme können kein Rechteckereignis mehr erhalten,
während einem anderem Programm die Maus zugeordnet ist.
v1.4: ARROWFIX kann jetzt auch zum Patchen eines GEM im RAM bzw.
in einem TOS-Image benutzt werden; Die Lösung für das Doppel-
scrollproblem wurde neu implementiert; Die Ansprechzeit für
die erste Wiederholung einer Scrollnachricht ist einstellbar;
Der Verteiler für die Scrollnachrichten im Desktop wurde
überarbeitet und dadurch auch im GEM 1.40, 3.31 bzw. 3.40
deutlich schneller.
v1.3: Fehlerhafte Codeerzeugung des Assemblers korrigiert
v1.2: ARROWFIX unterstützt nun auch das Programm ROMSPEED
Es ist jetzt möglich ARROWFIX vom Desktop aufzurufen
COPYRIGHT
Autor: (\/) Martin Osieka
Anschrift: Martin Osieka, Erbacherstr. 2,
64283 Darmstadt, Bundesrepublik Deutschland
Internet: Martin_Osieka@mtk.maus.de
Schriftlichen Anfragen bitte immer einen frankierten und
adressierten Rückumschlag beilegen.
Das Programm ARROWFIX.PRG darf auf beliebige Art und Weise weiter-
verbreitet werden, solange alle Dateien des Programmpakets
beiliegen. Zum Paket gehören:
ARROWFIX.PRG Patchprogramm
ARROWFIX.GER Dokumentation
ARROFIX.UPL Upload-Beschreibung
ARROWFIX.CPX Konfigurationsprogramm
Die Benutzung des Programms erfolgt auf eigene Gefahr.