---------------------------------------------------------------------------
-                 GFA-BASIC Interpreter/Compiler-Patcher                  -
-                             Version 1.05                                -
---------------------------------------------------------------------------
- Compiler & Library-Patches von                                          -
- Christoph Conrad, Adalbertsteinweg 113, D-52070 Aachen                  -
- eMail: Christoph_Conrad@AC3.maus.de                                     -
-                                                                         -
- Interpreter-Patches und GEM-Oberflche von                              -
- Gregor Duchalski, Baueracker 15a, D-44627 Herne                         -
- eMail: Gregor_Duchalski@DO.maus.ruhr.de                                 -
-                                                                         -
- Herzlichen Dank fr die englische bersetzung an das                    -
- System ST Team                                                          -
---------------------------------------------------------------------------

Das vorliegende Programm gestattet es auf komfortable Weise, sinnvolle
Patches am GFA-BASIC 3.x Interpreter & Compiler vorzunehmen. 

Whlen Sie bitte zu Beginn den Basic-Interpreter oder Compiler (GFA_BCOM.
PRG) aus. Danach gelangen Sie in den jeweiligen Einstellungsdialog.

Etwas vorweg: Sicherheitshalber sollten Sie die gepatchten Programme nicht
unter dem Originalnamen abspeichern. Wir bernehmen keine Gewhr fr die
Funktionsfhigkeit der Patches, wer also seinen Interpreter zermanscht und
keine Sicherheitskopie besitzt, ist selber schuld!

---------------------------------------------------------------------------
Patchen des Compilers
---------------------------------------------------------------------------
Am Compiler bzw. an der Lib knnen zwei Vernderungen vorgenommen werden:

-Einfgung eines verbesserter INIT-Teils
-Bugfix fr den Absturz unter MAGX!

Beide Patches knnen getrennt oder auch in 'einem Rutsch' vorgenommen
werden. Der MAG!X-Patch verndert nur die Datei GFA_BCOM.PRG, der INIT-
Patch auch die Library.

Im Patch-Dialog knnen Sie nun angeben, unter welchen Namen der gepatchte
Compiler bzw. die Library gespeichert werden sollen. Ggf. knnen Sie hier
auch die Original-Library erneut festlegen, falls der voreingestellte Name
nicht zutreffen sollte. 

---------------------------------------------------------------------------
Patchen des Compilers I: Neuer INIT-Teil
---------------------------------------------------------------------------
Genaue Hintergrund-Informationen ber den neuen INIT-Teil entnehmen Sie
bitte dem Text LIBPATCH.TXT. Eines vorweg: Das Beispiel-Listing ERR.LST
demonstriert die neuen Mglichkeiten.

Wichtig: Im Ordner LIBPATCH mssen sich die Dateien HIDEM.O, INIT35.O und 
INIT36.O befinden!

Klicken Sie nun auf 'Patchen', so wird der automatische Patchvorgang ge-
startet. Am Ende wird versucht, mit dem Programm MAKE_NDX.PRG eine neue
Indexdatei (GFA3BLIB.NDX) zu erzeugen. Dieses Programm (es sollte sich im
Lieferumfang Ihres Compilers befunden haben) wird zunchst im Ordner der
Original-Library, danach im Ordner LIBPATCH gesucht. Bei Mierfolg knnen
Sie diese Datei noch in der Dateiauswahlbox auswhlen. Schlgt auch das
fehl, so beendet sich das Programm. Bedenken Sie bitte, da Sie in diesem
Fall eine NDX-Datei 'per Hand' anlegen mssen. Vermeiden Sie diese Situa-
tion also besser.

Hinweis: Sollten Sie kein MAKE_NDX.PRG besitzen, knnen Sie dies von GFA
(hhh) oder uns erhalten. Schicken Sie dazu Ihre Originaldiskette und
einen frankierten und adressierten Rckumschlag an G. Duchalski, Adresse
oben.

---------------------------------------------------------------------------
Patchen des Compilers II: MAG!X-Bugfix
---------------------------------------------------------------------------
Der Compiler strzt unter MAG!X mit der Meldung "Speicherblock zerstrt"
ab. Ursache:

Der Compiler reduziert per MShrink (GEMDOS 74) seinen Speicherbedarf auf
das Notwendige. Per Malloc (GEMDOS 72) fragt er dann nach dem grten
verfgbaren Speicherblock und alloziert diese Gre abzglich 16 KByte.
Leider geht das Programm davon aus, da der allozierte Speicher direkt
hinter dem vorher geshrinkten Bereich liegt. Im allgemeinen stimmt dies
sogar. Unter MAG!X liegt vor dem allokierten Speicherblock (die Adresse,
die MAlloc zurueckgibt) allerdings ein sogenannter MCB, der 'Memory
Control Block'.

Dieser enthlt
- eine Kennung ('ANDR' oder 'KROM', einer der Programmierer,
  Andreas Kromke, lt gren)
- die Lnge des allozierten Blocks
- die Basepageadresse des Programmes, welchem der Block gehrt
- den Zeiger auf den letzten MCB.

Der GFA-Compiler ueberschreibt den MCB. Nach dem Terminieren des Compilers
berprft MAG!X, ob die Kette der MCBs noch in Ordnung ist und meldet den
beschriebenen Fehler.

brigens: Auch unter MultiTOS tritt dieses Problem zunchst auf. Hier kann
es jedoch durch Setzen der memory-protection-flags im PRG-Header auf GLOBAL
einfacher behoben werden.

Durch den Patch benutzt der GFA-Compiler die ersten 16 Byte des hinter dem
MShrink liegenden Speicherbereiches nicht mehr und berschreibt demzufolge
keinen MCB. Das Verhalten des Compilers bleibt trotzdem inkorrekt, da der
allozierte Bereich nicht unbedingt hinter dem vom Compiler noch belegten
Speicher liegen mu (obwohl dies in der Regel zutrifft).

---------------------------------------------------------------------------
Patchen des Interpreters
---------------------------------------------------------------------------
Hierbei handelt es sich entweder um von GFA dokumentierte, praktische 
Konfigurationspatches oder um Fehlerkorrekturen.

Patchbare Interpreter:

 Version:       Dateilnge:
  3.6TT          104770
                 104766
                 104739
                 104597 (englische Version)
  3.5E           103510
  3.50           102519
                 102523
  3.07           92894
  
Was wird im Interpreter gepatcht?

 -Keine LINEA-Aufrufe mehr:
  Siehe auch LIBPATCH.TXT. Beim Bewegen der Maus im Editor gibt es zwar
  nun leichte Flecken, dafr aber keine beim laufenden Programm.

 -Keine SETCOLOR-Aufrufe mehr, die auf dem TT die Farben verstellen:
  Das Basic begeht beim internen Setzen und Abfragen der Bildschirmfarben 
  einen Fehler, der in Auflsungen wie TT-Mittel dazu fhrt, da nach dem
  Interpreter-Lauf einige Farben verstellt sind. Dieser Patch verhindert
  dies. Auch der Befehl SETCOLOR hat danach keine Wirkung mehr. Hier sollte
  ohnehin besser VSETCOLOR verwendet werden. 
  Hinweis: Beachten Sie, da das weiter unten aufgefhrte Patchen der
  Editorfarben in Zusammenhang mit dem SETCOLOR-Patch keine Wirkung hat!

 -Kein Abbruch mehr bei MERGE, wenn ASCII 4 im Quelltext vorkommt:
  Der Interpreter bricht normalerweise das Mergen von Files, die das
  Zeichen ASCII 4 (EOT == End of transmission, CONTROL D, Pfeil nach links)
  enthalten, ab der entsprechenden Zeile ab. Unter UN*Xen ist ASCII 4 das
  Dateiendezeichen, was auf einst recht grosse Ambitionen von GFA-System-
  technik hindeutet. Dieser Patch unterbindet dieses strende Verhalten.

 -CALL-Bug beheben:
  Der CALL-Befehl im Interpreter Version 3.6 D TT der Groesse 104770 Byte
  ist aufgrund eines Tippfehlers (movem.l a4/a6,-(sp) anstatt movem.l
  a4-a6,-(sp)) fehlerhaft. Der Patch 'repariert' diesen Befehl.

 -Systemspeicher freilassen:
  Der Interpreter reserviert sich beim Start den kompletten Systemspeicher
  bis auf 16KB. Das ist speziell auf nicht TT-Maschinen oft ein bichen
  wenig, da z.B. Accessories dann zu wenig Speicher bekommen und eventuell
  die Arbeit verweigern. Mit diesem Patch kann nun festgelegt werden,
  wieviel KB der Interpreter freilt (z.B. 32).

 -'Neue Namen' aktivieren:
  Der Meneintrag 'Neue Namen' wird automatisch mit einem Hkchen versehen.

 -Die DEFLIST-Voreinstellung

 -Die Editor-Farben
  Hinweis: Das funktioniert nicht, wenn gleichzeitig 'SETCOLOR-Aufrufe
  unterbinden' aktiviert ist.

 -Der Default-Variablentyp, der ohne Postfix eingegeben werden darf.
  Voreingestellt Float.

 -Kein CLS bei Programmstart

Das Patchen ist denkbar einfach: Nur die zu patchenden Optionen festlegen
und 'Patchen...' anwhlen. Danach kann der gepatchte Interpreter unter
einem neuen Namen gespeichert werden.

---------------------------------------------------------------------------
Versions-History
---------------------------------------------------------------------------
Vers.   Datum

        24.07.93 -Erste vorlufige Version. Und schon ndere ich mal
                  kurz die Versionsnummernzhlung. :-)

0.90   26.07.93 -MERGE-Patch fr den 3.50er Interpreter eingebaut.
                 -Default-Variablentyp des geladenen Interpreters
                  wird ausgelesen und angezeigt.
                 -Patches um weitere Versionen erweitert.

0.91   27.07.93 -Kein 'Musedreck' bei Dateiauswahlbox mehr
                 -Mit der Compiler-Patch-Untersttzung begonnen.
        
0.92   29.07.93 -DEFFILL-Patch eingebaut, war in der Tat falsch
                  dokumentiert.
                 -GFA_BCOM.PRG wird nicht mehr anhand einer Tabelle
                  ausgewertet, sondern alle ntigen Daten werden direkt
                  aus der Datei geholt.

        01.08.93 -Der Compiler wurde falsch gepatcht.

0.93    08.08.93 -Library-Patches integriert.

0.94    13.08.93 -Aufruf des MAKE_NDX-Programmes war fehlerhaft.
                 -MERGE-Patch fr den 3.5E Interpreter eingebaut.
                 -Anleitung berarbeitet.

0.95    19.08.93 -Restliche Patches eingebaut: Line-A und SETCOLOR-
                  Unterdrckung fr die Version 3.07.
                 -DEFFILL-Patch um den Wert 8 erweitert.
                 -Doku nochmal berarbeitet.

0.96    28.08.93 -3.6 Interpreter mit 104739 Bytes wird untersttzt.
                 -Line-A Patch fr 3.07 funktionierte nicht.

0.97    27.09.93 -3.6 Interpreter mit 104766 Bytes wird untersttzt.

0.98    29.09.93 -Mit den Anpassungen an den MAG!X-Compiler-Patch begonnen.

        02.10.93 -MAG!X-Patch komplett eingebaut.

        04.10.93 -Zu Beginn erscheint jetzt ein kurzer Informationsdialog.

0.99    23.01.94 -Neuer INIT-Teil, der alte enthielt einen Fehler im
                  Zusammenhang mit Fliekommavariablen.

                 -Das Programm benutzt kein LINEA mehr.

1.00    07.02.94 -Der SETCOLOR-Patch beim 3.50 Interpreter klappte nicht.

                 -Ein weiterer Patch wurde hinzugefgt: Die Gre des
                  Speichers, die der Interpreter beim Start dem System
                  lt, kann gendert werden. Default sind 16KB, weniger
                  kann sinnvoll sein, wenn man z.B. Accessories (ERGO!help)
                  mehr Speicher lassen mchte.

                 -3D-Effekte unter MTOS und MAG!X waren fehlerhaft.

                 -Wenn beim Start SHIFT, CONTROL oder ALTERNATE gedrckt
                  wird, erscheint der Infodialog nicht mehr sondern direkt
                  die Dateiauswahlbox.

1.01    10.04.94 -Der LINEA-Patch fr den 102523 Bytes Interpreter war
                  fehlerhaft.

                 -Der Speicher-Patch funktionierte auf dem ST nur bis
                  zum  nchsten RESERVE-Aufruf, danach waren wieder nur
                  16 KB frei.

        15.04.94 -Bei erfolgreich abgeschloenem Patchvorgang 
                  erscheint jetzt eine entsprechende Meldung.

1.02    15.05.94 -SETCOLOR-Patch fr 3.5 Interpreter mit 102519 Bytes
                  klappte nicht (Andre Muller).

                 -Da der Editorfarben-Patch sinnlos ist, wenn man gleich-
                  zeitig alle SETCOLORs unterdrckt, wird dies jetzt durch
                  disablen der entsprechenden Einstellung deutlich gemacht
                  (David Reitter).

1.03    20.07.94 -Einige interne berarbeitungen und zustzliche Sicher-
                  heitschecks, auerdem Anpassungen an die neue englische
                  Version.

                 -'Patchen...' beim Interpreter ist jetzt nicht mehr
                  whlbar, wenn Patch Option angewhlt wurde.

1.04    11.08.94 -Englischer 3.6 Interpreter mit 104597 Bytes
                  wird untersttzt.

1.05    29.08.94 -'Neue Namen'-Voreinstellung kann gepatcht werden.

---------------------------------------------------------------------------
Programmstatus und Haftung
---------------------------------------------------------------------------
GFA_PTCH ist Freeware und darf weitergegeben werden, solange alle zum
Lieferumfang des Orginalarchivs gehrenden Dateien enthalten sind. Die
kommerzielle Nutzung des Programms ist verboten. Der Vertrieb ber PD-
Versender ist erlaubt, solange das zu zahlende Entgeld den Betrag von
DM 10.- nicht bersteigt.

Wir bernehmen keinerlei Haftung fr die Funktionsfhigkeit dieses Pro-
grammes oder Schden jeglicher Art, die durch die Benutzung von GFA_PTCH
entstanden sein knnten.

Die neueste Version dieses Programmes ist immer in der Maus DO zu finden.

Wer Vorschlge hat, weitere Patches kennt oder eine Basic-Version besitzt,
die nicht untersttzt wird, kann sich gerne an uns wenden. 

Viel Spa wnschen

 Gregor Duchalski & Christoph Conrad

--------------------------------------------------------------------------
