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 >
Text File  |  1993-10-18  |  13KB  |  233 lines

  1. PROGRAMM
  2.      ARROWFIX v1.5 [18.10.1993] - 
  3.      Patches rund um die Scrollroutinen von GEM-AES und GEM-Desktop
  4.  
  5. BESCHREIBUNG
  6.      Die Scrollroutinen im GEM wurde im Laufe der TOS-Versionen einigen
  7.      Änderungen unterzogen um das System sicherer und schneller zu
  8.      machen. Leider haben sich dabei immer wieder Fehler eingeschlichen,
  9.      die mit ARROWFIX behoben werden können.
  10.  
  11.      Die einfachste Scrollimplementierung findet sich, wen wundert es,
  12.      im TOS 1.00. In diesem TOS hatten die Scrollpfeile der Fenster 
  13.      noch keinen AUTO-Repeat und es war sehr mühselig zu scrollen.
  14.      Dies wurde im TOS 1.02 geändert, dabei jedoch ein konzeptionelles
  15.      Problem im GEM übersehen, was dazu führt, daß in einigen Programmen,
  16.      bei einem Einzelklick auf einen Scrollpfeil, zweimal gescrollt 
  17.      wird (1). Dieser Fall tritt genau dann ein, wenn weder die Haupt-
  18.      applikation noch eines der installierten Accessories auf einen
  19.      Doppelklick wartet. In der Praxis fällt das Problem in TOS 1.02 
  20.      jedoch nicht auf, da ein anderer 'echter' Fehler seine Wirkung
  21.      aufhebt. Als dieser Fehler in TOS 1.04 korrigiert wurde, schlug
  22.      das Problem voll durch und es wurde eine Verzögerungsschleife ein-
  23.      gebaut, die auch in den meisten Situationen Abhilfe schafft, aber
  24.      leider nicht immer. Bis zur aktuellen GEM Version 3.40 in TOS 4.04
  25.      hat sich daran nichts mehr geändert.
  26.  
  27.      In TOS 2.x/3.x wurde das alte GEM-Desktop durch NEWDESK ersetzt.
  28.      Da den Entwicklern die Scrollgeschwindigkeit in den Fenstern des
  29.      Desktops wohl zu langsam war, benutzten sie einen 'schmutzigen'
  30.      Trick zur Beschleunigung (dabei wird so lange gescrollt, wie eine
  31.      beliebige Maustaste gedrückt ist)(2). Durch diesen Trick wird der
  32.      Bildschirmmanager kalt gestellt und es läuft immer eine Scroll-
  33.      meldung nach (auch so manches Programm geht leider so vor). 
  34.      Ab GEM 3.20 (TOS 2.06/3.06) wurde das Versenden der Scrollmeldungen
  35.      im Bildschirmmanager beschleunigt. Dies wurde erreicht, in dem ein
  36.      'Bypass' zwischen Bildschirmmanager und der Applikation gelegt
  37.      wurde. Scrollmeldungen können somit teilweise den langen Weg durch
  38.      den Nachrichtenmanager des GEM vermeiden. Diese Änderung bescherte
  39.      leider auch eine Reihe von Fehlern. Nachrichten, die den Bypass
  40.      benutzen, haben eine falsche Nachrichtenlänge (3) und überholen
  41.      andere Nachrichten (4), die an die Applikation geschickt werden.
  42.      Außerdem verschickt der Bildschirmmanager manchmal Nachrichten
  43.      über den Bypass, obwohl er die alte Methode hätte benutzen müssen.
  44.      Das führt dazu, daß die Nachricht hängen bleibt (5) und erst nach
  45.      einer anderen Aktion durch den Anwender ausgeführt wird.
  46.      
  47.      In den TOS Versionen 4.00 bis 4.04 wurden die Fehler (3) und (4)
  48.      behoben und der Scrolltrick (2) entfernt (leider ohne ihn durch
  49.      eine saubere Lösung zu ersetzen, wodurch das Scrollen in Desktop-
  50.      Fenstern bis zu 50% langsamer ist).
  51.  
  52.      Ein weiterer Fehler, der eigentlich nichts mit dem Scrollen zu tun
  53.      hat, aber von ARROWFIX behoben wird, hat bisher alle TOS Versionen
  54.      überlebt. In bestimmten Situation kann es passieren, daß einer
  55.      Applikation ein Mausklick bzw. ein Rechteckereignis gemeldet wird,
  56.      obwohl dem Bildschirmmanager die Maus zugeordnet ist (6) (z.B. 
  57.      wenn die Applikation einen Timerevent erhält, während man ein
  58.      Fenster verschiebt).
  59.  
  60.      Nach der Beschreibung der TOS-Probleme jetzt die Möglichkeiten  
  61.      sie mit ARROWFIX los zu werden:
  62.      
  63.      Die erste Möglichkeit erlaubt es leider nur die Probleme (1) und
  64.      (3) (Doppelereignis und Überlänge) zu lösen. ARROWFIX.PRG muß
  65.      dazu in den Ordner \AUTO ihres Bootlaufwerks kopiert werden. Beim
  66.      Start des Rechners installiert sich ARROWFIX dann in den Aufrufen
  67.      einiger Systemfunktionen.
  68.  
  69.      Für die zweite Möglichkeit ist ein direkter Eingriff in den
  70.      Programmcode des GEM notwendig. ARROWFIX beseitigt dann die
  71.      obigen Fehler, implementiert eine sauberere und schnelle Scroll-
  72.      routine im GEM-Desktop und erlaubt es schließlich die Ansprech-
  73.      zeit bis zur ersten Wiederholung einer Scrollmeldung einzustellen.
  74.      
  75.      Die Unterschiede in der Implementierung des AUTO-Repeats der
  76.      Scrollpfeile soll das folgende Diagramm beschreiben:
  77.      
  78.           normales TOS                    ARROWFIX modifiziertes TOS
  79.         
  80.           Klick                           Klick
  81.             |  Doppelklickwartezeit         | 
  82.             |  bzw. 0, falls keine App.     |  Doppelklickwartezeit
  83.             v  auf Doppelklick wartet       v
  84.            ---                            1. Scrollmeldung
  85.             |  Doppelklickwartezeit         |
  86.             |  (erst ab TOS 1.04)           |  *1*
  87.             v                               v
  88.           1. Scrollmeldung                2. Scrollmeldung
  89.             |  Verarbeitungszeit des        |  Verarbeitungszeit des
  90.             |  Programms                    |  Programms
  91.             v                               v
  92.           2. Scrollmeldung                3. Scrollmeldung
  93.  
  94.           *1* Maximum aus der Ansprechzeit (einstellbar von 0 ab in
  95.               0.125 Sekunden Schritten, siehe KONFIGURATION) und der
  96.               Verarbeitungszeit des Programms 
  97.           Die Doppelklickwartezeit kann über das Kontrollfeld ein-
  98.           gestellt werden. Möglich sind hier Werte von 0 bis 4, die den
  99.           folgenden Zeiten entsprechen: 450, 330, 275, 220 und 165 ms.
  100.                       
  101.      Der Programmcode des GEM kann folgendermaßen verändert werden:
  102.  
  103.      a) Man installiert beim Booten des Rechners eine Kopie des GEM im
  104.         RAM, die dann vor dem Start des GEM durch ARROWFIX modifiziert
  105.         wird. Dies ist mit einem der folgenden Programme möglich:
  106.  
  107.         ROMRAM   TOS Beschleuniger für TTs, >256 KB,
  108.                  Mailbox Maus HH2, Freeware, A. Herzlinger, PTOS
  109.         VRAM     Virtuelle Speicherverwaltung für TTs, >256 KB,
  110.                  OverScan GbR, Berlin, Alexander Herzlinger, VRAM
  111.         ROMSPEED TOS Beschleuniger für TTs (Bestandteil von OUTSIDE
  112.                  einer virtuelle Speicherverwaltung für TTs), >256 KB,
  113.                  MAXON Verlag, Uwe Seimet, USRS
  114.         GEMRAM   GEM im RAM installieren (STs und TTs), 80-120 KB,
  115.                  Mailbox Maus MZ, Freeware, Martin Osieka, MOGR
  116.         (Beschreibung, Speicherbedarf, Bezugsquelle, Autor, Cookie)
  117.  
  118.         ARROWFIX gehört in diesem Fall nach diesen Programmen in den
  119.         Ordner \AUTO auf dem Bootlaufwerk und wird somit beim Booten
  120.         automatisch gestartet.
  121.         Die Programme werden nur erkannt, wenn sie das entsprechende
  122.         Cookie im Cookiejar eingetragen haben.
  123.         
  124.      b) Man benutzt ARROWFIX um sich eine modifizierte Kopie des TOS
  125.         zu erstellen, die anschließend in Eproms gebrannt und in den
  126.         Rechner eingesetzt wird. Hierzu ruft man ARROWFIX vom Desktop
  127.         auf und erhält dann die Möglichkeit, das TOS aus den ROMs oder
  128.         einer bereits bestehenden TOS-Datei von Disk zu laden. Nachdem
  129.         ARROWFIX das TOS modifiziert hat, kann es abgespeichert werden.
  130.  
  131.      ARROWFIX unterstützt die folgenden GEM Versionen:
  132.  
  133.           GEM      TOS
  134.           1.40     GER 1.04/1.06/1.62
  135.           3.00     GER 3.01
  136.           3.10     GER 2.05/3.05
  137.           3.20     GER 2.06/3.06
  138.           3.31     4.01
  139.           3.40     4.02/4.04
  140.  
  141.      ARROWFIX identifiziert das GEM über die Länge des GEM-TEXT-Segments.
  142.      GEM Versionen anderer Länder werden bei identischer Länge akzeptiert.
  143.  
  144. KONFIGURATION
  145.      Die Voreinstellung für die Ansprechzeit beträgt 0.375 Sekunden.
  146.      Durch Umbennen des Programms kann man diesen Wert ändern. Hierzu
  147.      ersetzt man das X im Programmnamen durch eine der Ziffern 0 bis 9.
  148.      Dieser Wert multipliziert mit 0.125 Sekunden wird dann von ARROWFIX
  149.      als Voreinstellung benutzt. Besser ist es jedoch die Ansprechzeit
  150.      über das beiliegende Modul ARROWFIX.CPX für das modulare Kontroll-
  151.      feld XCONTROL.ACC einzustellen.
  152.      Hält man beim Start von ARROWFIX die linke SHIFT Taste gedrückt,
  153.      wird nachgefragt, ob ARROWFIX ausgeführt werden soll.
  154.  
  155. HINWEISE FÜR PROGRAMMIERER
  156.      - das Doppelscrollproblem kann man leicht vermeiden, wenn man
  157.        in seinem evnt_multi()-Aufruf immer auch auf einen Doppel-
  158.        klick wartet:  z.B. evnt_multi( MU_BUTTON|..., 2, 1, 1, ...);
  159.      - Programme sollten nicht den Bildschirmmanager kalt stellen,
  160.        in dem sie nach Erhalt einer Scrollmeldung so lange scrollen,
  161.        wie eine Maustaste gedrückt ist. Es gibt auch saubere Methoden
  162.        ein schnelles Scrollen zu implementieren. Z.B. kann man mit
  163.          evnt_multi( MU_TIMER|MU_MESAG, ..., mesag, 0, 0, ...);
  164.        eine eventuell vorliegende Nachricht lesen. Handelt es sich um
  165.        eine Scrollnachricht, verarbeitet man sie sofort (ACHTUNG: Die
  166.        Scrollrichtung kann sich geändert haben) ansonsten stellt man
  167.        sie zurück und wertet sie erst später aus. Es gibt Bibliotheken,
  168.        die hierfür passende Funktionen anbieten, so daß man nicht mit
  169.        globalen Variablen arbeiten muß. Beim Scrollen sollte auch
  170.        regelmäßig die Ausgabekontrolle abgegeben werden, damit andere
  171.        Applikationen zum Zuge kommen.
  172.      - Es ist unbedingt notwendig, beim Verschicken eigener Nachrichten,
  173.        die Überlaenge in mesag[ 2] korrekt zu setzen, da das GEM diesen
  174.        Wert intern zum Kopieren der Nachrichten benutzt.
  175.      
  176. VEKTOREN, COOKIES, ETC.
  177.      Kann das GEM modifiziert werden, integrieren sich die Patches in den
  178.      bestehenden Programmcode des GEM und ändern daher keine Vektoren.
  179.      Falls das Programm installiert werden muß, werden die Vektoren
  180.      _v_BIOS und _v_AESVDI manipuliert. Die XBRA-Kennung ist MOAF.
  181.  
  182. BEKANNTE PROBLEME
  183.      - ARROWFIX >= v1.4 muß nach WINX v2.0 gestartet werden. Das gilt
  184.        auch für das Patchen eine TOS-Images.
  185.      - ARROWFIX >= v1.4 kann nicht mit WINX >= v2.1 eingesetzt werden.
  186.        Das ist aber auch nicht notwendig, da die ARROWFIX-Patches ab
  187.        dieser Version in WINX enthalten sind.
  188.      - Bei Programmen, die nach Erhalt einer Scrollnachricht so lange
  189.        scrollen, wie die Maustaste gedrückt ist (und somit den
  190.        Bildschirmmanager kalt stellen), hat die Ansprechzeit keine
  191.        Wirkung. Solche Programme werden auch Schwierigkeiten bekommen,
  192.        falls der Bildschirmmanager einmal erweiterte Scrollfunktion
  193.        anbieten sollte.
  194.      - Bei manchen Kombinationen einer Applikation mit bestimmten
  195.        Accessories wird einem die Verarbeitung der Mausklicks träger
  196.        vorkommen. Tatsächlich ist es aber so, daß die Verarbeitung
  197.        jetzt eine einheitliche Geschwindigkeit hat.
  198.      - Das Abfangen des AES-Traps ist nicht genormt. Aus diesem Grund
  199.        kann die Zusammenarbeit mit anderen Programm scheitern, die
  200.        diesen Vektor ebenfalls ändern.
  201.  
  202. ÄNDERUNGEN
  203.      v1.5: Programme können kein Rechteckereignis mehr erhalten,
  204.            während einem anderem Programm die Maus zugeordnet ist.
  205.      v1.4: ARROWFIX kann jetzt auch zum Patchen eines GEM im RAM bzw.
  206.            in einem TOS-Image benutzt werden; Die Lösung für das Doppel-
  207.            scrollproblem wurde neu implementiert; Die Ansprechzeit für
  208.            die erste Wiederholung einer Scrollnachricht ist einstellbar;
  209.            Der Verteiler für die Scrollnachrichten im Desktop wurde
  210.            überarbeitet und dadurch auch im GEM 1.40, 3.31 bzw. 3.40
  211.            deutlich schneller.
  212.      v1.3: Fehlerhafte Codeerzeugung des Assemblers korrigiert
  213.      v1.2: ARROWFIX unterstützt nun auch das Programm ROMSPEED
  214.            Es ist jetzt möglich ARROWFIX vom Desktop aufzurufen
  215.  
  216. COPYRIGHT
  217.      Autor:      (\/) Martin Osieka
  218.      Anschrift:  Martin Osieka, Erbacherstr. 2, 
  219.                  64283 Darmstadt, Bundesrepublik Deutschland
  220.      Internet:   Martin_Osieka@mtk.maus.de
  221.  
  222.      Schriftlichen Anfragen bitte immer einen frankierten und
  223.      adressierten Rückumschlag beilegen.
  224.      
  225.      Das Programm ARROWFIX.PRG darf auf beliebige Art und Weise weiter-
  226.      verbreitet werden, solange alle Dateien des Programmpakets
  227.      beiliegen. Zum Paket gehören:
  228.        ARROWFIX.PRG              Patchprogramm
  229.        ARROWFIX.GER              Dokumentation
  230.        ARROFIX.UPL               Upload-Beschreibung
  231.        ARROWFIX.CPX              Konfigurationsprogramm
  232.      Die Benutzung des Programms erfolgt auf eigene Gefahr.
  233.